sat*_*oru 2 python floating-point
我正在从API解析一些价格信息,如果我这样做,我是否需要担心失去精度price = float(price_str)?
或者我必须使用decimal.Decimal以确保解析原始值?
使用货币时使用十进制类!为什么?让我们看看这个虚拟的例子:
float('0.2') + float('0.1')
Run Code Online (Sandbox Code Playgroud)
结果: 0.30000000000000004
用十进制代替:
Decimal('0.2') + Decimal('0.1')
Run Code Online (Sandbox Code Playgroud)
结果: Decimal('0.3')
更新:
如果您使用的是带有json格式的第三方API,您可以使用Decimal自动自动解析浮点数:请参阅我的博客文章:http://www.daveoncode.com/2014/10/21/python-reading-numbers-from -json-而不-失精密使用小数级换数据处理/
| 归档时间: |
|
| 查看次数: |
3033 次 |
| 最近记录: |