为什么0.58*100=0.579999999。。。在python中发生

2024-06-29 00:36:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我是大学生。 我正在学习python并创作一些作品。 最近,我发现了以下差异

“>;>;0.57*100”

“56.9999999999”

“>;>;0.58*100”

“57.9999999999”

“>;>;0.56*100”

“56.00000000000001”

“>;>;0.55*100”

“55.00000000000001”

上述代码在python解释器中执行。 我的python版本是3.7.7。 我的python是Cpython

我乘以任何其他两个小数点,比如0.54,0.19,0.99等等

但只有0.58和0.57会变成类似 57.999999... 或56.99999999。。。 当乘以100时

只有0.56*100和0.55*100会变成这样 56.00000000000001或55.00000000000001 当乘以100时

所有大多数的两个小数点数字,如0.19、0.99 变为正确值:19.0,99.0

这些差异只会导致我的电脑?还是每一台电脑? 如果每个python环境都有这些差异,为什么会发生这种情况


Tags: 代码gt版本环境情况数字差异cpython
1条回答
网友
1楼 · 发布于 2024-06-29 00:36:26

这些“错误”发生在python和一些编程语言上。事实上,你不能将浮点与整数相乘,因为会发生这种错误

您可以做的是创建一个var“epsilon”,其值位于小数点之后,您希望在小数点处得到类似于0.001的结果。然后你只需要将结果与这个var进行比较,你只需要保留你想要的数字。(对不起,英语不好,如果你不懂就告诉我。)

相关问题 更多 >