Skip to main content
 首页 » 编程设计

python之检查小数点python

2025年05月04日24bluestorm

我正在尝试使用 while 创建一个计数为 3(步长为 0.1)的脚本,并且我正在尝试使其不为没有小数的数字显示 .0(1.0 应显示为 1,2.0 应显示为是 2...) 我试图做的是将 float 转换为 int,然后检查它们是否相等。问题是它只适用于第一个数字 (0),但当它达到 1.0 和 2.0 时就不起作用了。

这是我的代码:

i = 0 
while i < 3.1: 
    if int(i) == i: 
        print int(i) 
    else: 
        print i 
    i = i + 0.1 

这是我得到的输出:

0 
0.1 
0.2 
0.3 
0.4 
0.5 
0.6 
0.7 
0.8 
0.9 
1.0 
1.1 
1.2 
1.3 
1.4 
1.5 
1.6 
1.7 
1.8 
1.9 
2.0 
2.1 
2.2 
2.3 
2.4 
2.5 
2.6 
2.7 
2.8 
2.9 
3.0 

我应该得到的输出:

0 
0.1 
0.2 
0.3 
0.4 
0.5 
0.6 
0.7 
0.8 
0.9 
1 
1.1 
1.2 
1.3 
1.4 
1.5 
1.6 
1.7 
1.8 
1.9 
2 
2.1 
2.2 
2.3 
2.4 
2.5 
2.6 
2.7 
2.8 
2.9 
3 

感谢您的宝贵时间。

请您参考如下方法:

由于 float 缺乏精度,它们不会有精确的整数表示。因此,您要确保差异小于一些小的 epsilon。

epsilon = 1e-10 
i = 0 
while i < 3.1: 
    if abs(round(i) - i) < epsilon: 
        print round(i) 
    else: 
        print i 
    i = i + 0.1