Python-无法将1.72e-05转换为浮点值
我在一个csv文件中有一些用科学记数法表示的值,我正试图使用从某个文件继承的Python3脚本将它们转换为浮点/十进制值。为此,我使用floatstring,但它无法转换某些值 以下是一个例子:Python-无法将1.72e-05转换为浮点值,python,Python,我在一个csv文件中有一些用科学记数法表示的值,我正试图使用从某个文件继承的Python3脚本将它们转换为浮点/十进制值。为此,我使用floatstring,但它无法转换某些值 以下是一个例子: U:\>py Python 3.5.1 (v3.5.1:37a07cee5969, Dec 6 2015, 01:38:48) [MSC v.1900 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license
U:\>py
Python 3.5.1 (v3.5.1:37a07cee5969, Dec 6 2015, 01:38:48) [MSC v.1900 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> float('1.72e-05')
1.72e-05
>>>
不知何故,它对上述某些值不起作用
这些科学符号值来自不同的系统,我不知道它们是如何产生的
谢谢您的帮助。如果您想将其转换为字符串,请执行此操作
value = float('1.72e-05')
string_value = "%f" % value
使用内置函数将科学记数法显示为小数
>>> format(float('1.72e-05'), 'f')
'0.000017'
>>> format(float('1.72e-05'), '.7f')
'0.0000172'
上面例子的预期输出是什么?结果是一个浮点数,只是用科学记数法显示。我希望它返回一个真正的浮点数,而不是用科学记数法的值。我试图将文件中的科学符号值替换为字符串形式的实际浮点值,以便将其加载到SQL Server中。然后,您需要的不是真正的浮点,而是浮点的字符串表示形式。它工作正常。您将字符串“1.72e-05”传递给float,它将返回float值1.72e-05。那不是一根绳子,而是一个浮点数。如果它是一个字符串,它将被单引号包围。您可以通过执行typefloat'1.72e-05'进行确认。如果要使用其他格式将其重新格式化为字符串,则可以使用format方法。在本例中,应为%.7f%值。感谢大家给出的精彩答案。我只需要小数点后两位数,这就足够了。