Skip to main content
 首页 » 编程设计

python之从字符串中读取一个 float

2025年05月04日11EasonJim

我有一个简单的字符串,我想在不丢失任何可见信息的情况下将其读入 float ,如下所示:

s = '      1.0000\n' 

当我执行 f = float(s) 时,我得到 f=1.0

如何欺骗它以获得 f=1.0000 ?

谢谢

请您参考如下方法:

直接回答:你不能。根据设计, float 是不精确的。虽然 python 的 float 具有足够的精度来表示 1.0000,但它们永远不会表示“1-point-zero-zero-zero-zero”。很有可能,这正是您所需要的。如果您需要显示四位十进制数字,您始终可以使用字符串格式。

print '%.3f' % float(1.0000) 

间接答案:使用decimal模块。

from decimal import Decimal 
d = Decimal('1.0000') 

decimal 包旨在以任意精度处理所有这些问题。小数“1.0000”正好 1.0000,不多也不少。但是请注意,舍入的复杂性意味着您不能将 float 直接转换为 Decimal;您必须将字符串(或整数)传递给构造函数。