Ant*_*ong 4 python floating-point python-2.4
这是一个例子:
>>> "%.2f" % 0.355
'0.35'
>>> "%.2f" % (float('0.00355') *100)
'0.36'
Run Code Online (Sandbox Code Playgroud)
他们为什么给出不同的结果
这不是格式错误.这只是浮点运算.查看格式命令下面的值:
In [18]: float('0.00355')
Out[18]: 0.0035500000000000002
In [19]: float('0.00355')*100
Out[19]: 0.35500000000000004
In [20]: 0.355
Out[20]: 0.35499999999999998
Run Code Online (Sandbox Code Playgroud)
这两个表达式创建不同的值.
我不知道它是否在2.4中可用,但您可以使用十进制模块来完成这项工作:
>>> import decimal
>>> "%.2f" % (decimal.Decimal('0.00355')*100)
'0.35'
Run Code Online (Sandbox Code Playgroud)
decimal模块将浮点数视为字符串以保持任意精度.
| 归档时间: |
|
| 查看次数: |
230 次 |
| 最近记录: |