gpt4 book ai didi

Python浮点到十进制转换

转载 作者:IT老高 更新时间:2023-10-28 20:32:48 24 4
gpt4 key购买 nike

Python Decimal 不支持从 float 构造;它希望您必须先将 float 转换为字符串。

这是非常不方便的,因为浮点的标准字符串格式化程序要求您指定小数位数而不是有效位数。因此,如果您有一个可能有多达 15 位小数的数字,您需要将其格式化为 Decimal("%.15f"% my_float),如果您这样做,它将在小数点后 15 位为您提供垃圾信息小数点前也有任何有效数字(Decimal("%.15f"% 100000.3) == Decimal('100000.300000000002910'))。

有人可以建议一种在用户输入时将 float 转换为十进制保留值的好方法,可能会限制可以支持的有效数字的数量吗?

最佳答案

Python <2.7

"%.15g" % f

或者在 Python 3.0 中:

format(f, ".15g")

Python 2.7+、3.2+

只需将 float 直接传递给 Decimal 构造函数,如下所示:

from decimal import Decimal
Decimal(f)

关于Python浮点到十进制转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/316238/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com