我正在尝试输出保存在熊猫系列对象中的十进制数。
这个数字是7.45。但是当我输出它时,它变成了 7.449999809265137。我需要它是 7.45。如何访问确切的数字 7.45 而不是近似于 7.45 的浮点值?
---series_data["高"]符号PIH 7.45TPNL 0.75转弯 2.05名称:2018-01-02 00:00:00,类型:float64
--- series_data["高"]["PIH"]7.449999809265137
如上所述,内存中保存的数字是具有许多小数位的数字。 由于某些数值精度问题,您可能已经达到该数字,同时期望看到 7.45。 浮点数的表示并不总是精确的。 例如:
>>> 0.1 + 0.2
0.30000000000000004
>>
提取数字时,您有几个选择:您可以将其格式化为小数点后 2 位(并在内存中保留完整的表示形式),您可以强制将其四舍五入并更改内存中的内容:
x = numpy.round(x, 2) # will round x to 2 decimal places and save that value
为精确的值设计的,而是为固有具有一定精度的测量数据而设计的。请阅读 https://floating-point-gui.de/
要打印达到一定精度,请使用字符串格式选项,如 %2f
% nr
请不要将浮点四舍五入