如何在python中将23位浮点数从字符串转换为浮点数并返回?

Posted

技术标签:

【中文标题】如何在python中将23位浮点数从字符串转换为浮点数并返回?【英文标题】:How to convert 23 digit float number from string to float and back in python? 【发布时间】:2018-05-07 17:22:44 【问题描述】:

在 python (3.6.2) 中,我想将数字的字符串表示形式转换为浮点数,对其进行更改,然后再将其转换回来。所以像

a = '147211834412830112.000'
b = float(a)
c = b+0.001
print("%23.3f" % c)
147211834412830112.000

但是上面的代码不能正常工作。

用 python 做到这一点并且不丢失这样一个数字的精度的可能性是什么?

【问题讨论】:

【参考方案1】:

如果您想保持数字的精度,请尝试使用decimal.Decimal

from decimal import Decimal

a = '147211834412830112.000'
b = Decimal(a)
c = b+Decimal('0.001')
print(c)

结果:

$ python x.py 
147211834412830112.001

【讨论】:

以上是关于如何在python中将23位浮点数从字符串转换为浮点数并返回?的主要内容,如果未能解决你的问题,请参考以下文章

如何在python中将数据帧中的符号转换为浮点数?

如何在 JavaScript 中将字符串转换为浮点数?

如何在 Java 中将整数转换为浮点数?

在 Objective-C 中将货币字符串转换为浮点数

Python:将 2 个整数转换为浮点数

将十六进制转换为浮点数