Skip to main content
 首页 » 编程设计

python之将字符串转换为数字

2025年05月04日21小虾米

将字符串转换为数字的简单方法是什么:
来自:

['3.65e+03', '1.14e+04', '1.35e+04', '1.46e+04'] 

到:

[3.65e+03, 1.14e+04, 1.35e+04, 1.46e+04] 

谢谢。

请您参考如下方法:

首先,我希望您知道 limitations在我们当前的架构中准确表示 float 。

转换的简单方法就是这样。

>>> s = ['3.65e+03', '1.14e+04', '1.35e+04', '1.46e+04'] 
>>> map(float,s)  
>>> [3650.0, 11400.0, 13500.0, 14600.0] 

但是 float 会将它们四舍五入为最接近的值,只要值相同,它的表示形式并不重要。有时,这些值可以具有接近相等的表示,例如具有相同的值(几乎)

>>> s = ['3.65e+93', '1.14e+04', '1.35e+04', '1.46e+04'] 
>>> map(float,s) 
[3.6500000000000001e+93, 11400.0, 13500.0, 14600.0] 

更新 - 请参阅 John Machin 对此行为/报告的评论。

但是如果你想要精确的表示,例如如果您正在处理涉及金钱的计算,那么您可能希望使用 Decimal 类型而不是 float,对于所有目的,它的行为方式与您的 float 相同。

>>> from decimal import Decimal 
>>> map(Decimal,s) 
[Decimal('3.65E+93'), Decimal('1.14E+4'), Decimal('1.35E+4'), Decimal('1.46E+4')]