python-3.x 当指数也是浮点数时,将字符串转换为浮点数

3okqufwl  于 2023-10-21  发布在  Python
关注(0)|答案(2)|浏览(155)

当字符串是10 E-3时,将字符串转换为浮点数很容易:

input_str = "10E-3"
output_float = float(input_str)

但是,当指数为非整数时,这将中断。例如:

input_str = "10E-3.5"
output_float = float(input_str)

返回:

ValueError: could not convert string to float: '10E-3.5'

如何提交非整数指数?

js81xvg6

js81xvg61#

你不能。浮点数不是这样工作的。这在每一种语言中都是真实的。
在代码中,你可以做10**-3.5,但浮点常量总是有一个整数指数。

6tdlim6h

6tdlim6h2#

由于float()不适用于非整数指数,请执行以下操作:

# Search for common exponent notation. 
notation = next(i for i in ["**", "E", "e"] if i in input_str)

# Split the input string based on the exponent.
mantissa, exponent = input_str.split(notation)

# Calculate the float.
output_float = float(mantissa) ** float(exponent)

相关问题