回覆列表
  • 1 # 使用者834195712159

    Python程式碼讀取

    # -*- coding: utf-8 -*-

    # @Time : 2019/5/22 13:53

    # @Author : 甄超鋒

    # @Email : [email protected]

    # @File : aaa.py

    # @Software: PyCharm

    import xlrd

    # xled讀取

    workbook = xlrd.open_workbook("aaa.xlsx")

    sheet2 = workbook.sheet_by_index(4)

    rows1 = sheet2.row_values(22)

    print(rows1[2])

    import openpyxl

    # openpyxl讀取

    wb = openpyxl.load_workbook("aaa.xlsx",)

    a_sheet = wb.get_sheet_by_name("表五")

    b4_too = a_sheet.cell(row=23, column=3)

    print(b4_too.value)

    # print(int(b4_too.value))

    # print(float(b4_too.value))

    # pandas讀取

    import pandas as pd

    io = "aaa.xlsx"

    data = pd.read_excel(io, sheet_name = "表五",)

    # a = data.head()

    print(data.values)

    出現這種問題的原因是

    浮點數的儲存誤差

    計算機能精確儲存0.1嗎?答案是,不能。

    你會問,為啥不能?又不是有無限位,為啥不能?呃,計算機是用二進位制來儲存你心裡想著的十進位制小數。0.1是十進位制小數,轉換成二進位制小數後,二進位制小數是無限位的。

    計算機能精確儲存0.01嗎?答案是,不能。只能儲存0.01的近似值。

    計算機能精確儲存0.3嗎?答案是,不能。只能儲存0.3的近似值。

    這就能夠解釋為什麼輸出內容中的第3行輸出的積不是0.01,而是0.010000000000000002。後者正是前者的近似值。也能解釋為什麼輸出內容中的第5行輸出的和不是0.3,而是0.30000000000000004。

    對多數實數,計算機都無法精確儲存。這造成誤差。在用計算機解決實際問題時,要考慮上述誤差的積累。

  • 中秋節和大豐收的關聯?
  • 虎皮紋星月怎麼挑選?