转换为小数点后有 4 个以上零的浮点数

问题描述 投票:0回答:1

我需要将字符串“0.00003”转换为浮点数,结果为0.00003,而不是3e-5的科学计数法

float() 有一个“特性”,任何传入的小数点后有 4 个或更多前导零的值都会返回一个以科学计数法表示的值。

传递给 float() 且小数点后少于 4 个零的任何值都会产生浮点数。

float("0.0003") 结果为 0.0003,type(float("0.0003")) 返回

使用小数点后有 4 个或更多零的 float() 会产生科学记数法值。

float("0.00003") 结果浮点为 3e-5

是的,3e-5 的值相当于 0.00003,但我的用例要求转换结果为格式为 0.00003 的浮点数据类型,而不是科学计数法。

我无法使用像 f'{float("0.00003"):.5f}' 这样的格式化程序,因为它返回一个字符串,而我需要一个浮点数。

python-3.x
1个回答
0
投票

您可以使用

Decimal
来实现:

from decimal import Decimal

input_str = "0.00003"

decimal_value = Decimal(input_str)

# When you need to display the value, you can use the decimal object for precise control
print(f'{decimal_value:.5f}')  # This will display 0.00003
© www.soinside.com 2019 - 2024. All rights reserved.