Py学习  »  Python

Python代码不按指定数量递增[重复]

Ellis Brown • 5 年前 • 1950 次点击  

长话短说,我试图画一些三角图,但是我将一个值递增0.1以得到一个精确的转折点,但是当递增0.10000000006或类似的值时,我无法检查它是否等于另一个值

我在另一个文件上运行了一个测试,以检查问题是否是由于某些正弦转换引起的,以防内存泄漏或其他原因(我不确定),而我在另一个文件中也遇到了同样的问题,这个文件只是一个for循环。

import math
xNum = 0
for x in range(180):
    print(xNum)
    xNum = 0.1 + xNum

当打印xNum时,我得到的值是0.40000000006,我不知道为什么xNum没有增加0.1。我使用了xNum+=0.1,但输出似乎没有差别

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/50790
 
1950 次点击  
文章 [ 1 ]  |  最新文章 5 年前
Andrej Kesely
Reply   •   1 楼
Andrej Kesely    6 年前

您可以在中阅读有关浮点问题的信息 official documentation .

作为对代码的快速修复,您可以使用 decimal 标准库中的模块:

from decimal import Decimal

xNum = 0
for x in range(180):
    print(xNum)
    xNum = Decimal('0.1') + xNum

这张照片:

0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
..etc.