我正在尝试输出保存在熊猫系列对象中的十进制数字。
数字是7.45。但是当我输出时它变成7.449999809265137。我需要它是7.45。如何访问确切的数字7.45,而不是接近7.45的浮点值?
--- series_data ['高'] 符号 PIH 7.45 TPNL 0.75 转向2.05 名称:2018-01-02 00:00:00,dtype:float64
--- series_data ['High'] ['PIH'] 7.449999809265137
答案 0 :(得分:0)
如上所述,保存在存储器中的数字是具有许多小数位的数字。由于某些数值精度问题,您可能已经达到了该数字,并希望看到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
答案 1 :(得分:0)
浮点不是为精确值而设计的,而是为固有具有一定精度的测量数据而设计的。请阅读https://floating-point-gui.de/
要打印达到一定精度,请使用字符串格式化选项,例如%2f
%nr
请不要舍入浮点数