我正在运行一些可以提供双/浮回的计算:
a = float(4)
b = float(56100)
c = a / b
现在运行脚本时,我明白了:
7.1301e-05
我只需格式化此响应即可获得7.13
。但是当我尝试这样做时,我得到0.00
:
percentage_connections_used = float(a) / float(b)
percentage_float = float(percentage_connections_used)
print(format(percentage_float, '.2f'))
我似乎无法弄清楚为什么在尝试格式化时会返回0。有人可能会告诉我发生了什么事吗?这是Python 2.7
答案 0 :(得分:2)
我认为你的格式是正确的,但当你尝试舍入到2位小数时它实际上是舍入到0.00。
7.8125e-05 = 0.000078125
当呈现为2位小数时,您得到0.00。
您可以使用以下方法执行一些字符串操作来解析7.8125数字:
d = float(str(c).split('e')[0])
但是,这有点冗长,也许社区中的某些人可以做得更好。
顺便说一下,当我运行a / b时,我得到7.1301 ... e-05。
答案 1 :(得分:1)
7.8125e-05
与0.000078125
相同,因此仅使用两个小数点对其进行格式化会为您提供0.00
。你可以做'.7f'
,这会得到你0.0000713。如果您希望以科学记数法输出,则应该明确地这样做。试试这个:
a = float(4)
b = float(56100)
c = a / b
print("{:.2e}".format(c))