Ray*_*ega 62 python math syntax operators python-2.7
例如,标准除法符号'/'舍入为零:
>>> 4 / 100
0
Run Code Online (Sandbox Code Playgroud)
但是,我希望它返回0.04.我该用什么?
Tor*_*rek 131
有三种选择:
>>> 4 / float(100)
0.04
>>> 4 / 100.0
0.04
Run Code Online (Sandbox Code Playgroud)
这与C,C++,Java等行为相同,或者
>>> from __future__ import division
>>> 4 / 100
0.04
Run Code Online (Sandbox Code Playgroud)
您还可以通过将参数传递-Qnew给Python解释器来激活此行为:
$ python -Qnew
>>> 4 / 100
0.04
Run Code Online (Sandbox Code Playgroud)
第二个选项将是Python 3.0中的默认选项.如果要使用旧的整数除法,则必须使用//运算符.
编辑:添加部分-Qnew,感谢ΤΖΩΤΖΙΟΥ!
Gly*_*yph 24
其他答案建议如何获得浮点值.虽然这将接近你想要的,但它不会是准确的:
>>> 0.4/100.
0.0040000000000000001
Run Code Online (Sandbox Code Playgroud)
如果你真的想要一个十进制值,这样做:
>>> import decimal
>>> decimal.Decimal('4') / decimal.Decimal('100')
Decimal("0.04")
Run Code Online (Sandbox Code Playgroud)
这将为您提供一个正确知道基数10中的4/100为"0.04"的对象.浮点数实际上是基数2,即二进制,而不是十进制.
使一个或两个术语成为浮点数,如下所示:
4.0/100.0
Run Code Online (Sandbox Code Playgroud)
或者,打开Python 3.0中默认的功能,即"真正的分割",它可以满足您的需求.在模块或脚本的顶部,执行以下操作:
from __future__ import division
Run Code Online (Sandbox Code Playgroud)
您可能还想查看 Python 的十进制包。这将提供很好的十进制结果。
>>> decimal.Decimal('4')/100
Decimal("0.04")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
131562 次 |
| 最近记录: |