我从 Python 开始,最近遇到了一个具有大值的数据集。
我的一个字段有一个值列表,如下所示:1.3212724310201994e+18
(注意e+18
在数字的末尾)。
如何将其转换为浮点数并删除指数而不影响该值?
首先,数量is已经是浮点数,您不需要更改它。唯一的问题是您希望更好地控制如何将其转换为字符串以用于输出目的。
默认情况下,超过一定大小的浮点数将使用指数表示法转换为字符串(其中“e”代表“*10^”)。但是,如果您想将其转换为不带指数表示法的字符串,则可以使用f
格式说明符,例如:
a = 1.3212724310201994e+18
print("{:f}".format(a))
gives:
1321272431020199424.000000
或者在 Python 3 中使用“f-strings”:
print(f"{a:f}")
这是第一个f
告诉它使用 f 字符串并且:f
是浮点格式说明符。
您还可以指定应显示的小数位数,例如:
>>> print(f"{a:.2f}") # 2 decimal places
1321272431020199424.00
>>> print(f"{a:.0f}") # no decimal places
1321272431020199424
请注意,Python 中浮点数的内部表示使用 53 位二进制精度(大约为 10^16 的一部分),因此在这种情况下,大约 10^18 的数值不会准确存储精确到最接近的整数,更不用说任何小数位了。但是,上面给出了如何控制用于字符串转换的格式的一般原则。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)