我知道这可能被认为是无关紧要的问题,但我写的软件是针对高性能计算环境的,所以这个3.5倍速度的提升实际上是很重要的。
In [1]: %timeit 10 / float(98765)
1000000 loops, best of 3: 313 ns per loop
In [2]: %timeit 10 / (98765 * 1.0)
10000000 loops, best of 3: 80.6 ns per loop
我使用dis
查看了代码,并且认为float()
会更慢,因为它需要一个函数调用(不幸的是我无法 dis.dis(float)
看它实际上在做什么)。
我猜第二个问题是何时应该使用float(n)
,何时应该使用n * 1.0
?
float
仍然稍微慢一些。至于为什么你可能想要使用float
,原因是它可以进行统一转换,比如float('1.0')
。 - bereal