十进制数用许多数字表示,当只有 2 位时



我正在尝试输出保存在熊猫系列对象中的十进制数。

这个数字是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

请不要将浮点四舍五入

相关内容

  • 没有找到相关文章

最新更新