在python中找到浮点数量级的最有效方法

时间:2018-10-17 16:39:27

标签: python performance loops floating-point processing-efficiency

我必须进行一些迭代计算,并且每次都需要找到我的浮点数的数量级(以科学计数法在e后面的位)。 目前,我正在循环执行此操作,但是这已经花了很多时间,而且我的计算永远都花不完。

while n<1.0:
    order=order-1
    n=n*10

是否有一些函数可以用来从python存储浮点数的方式快速提取此信息? 有人告诉我浮点数分别存储值和指数。

编辑:它不是重复的,因为我要的是最有效的方法。用对数提出的那个实际上比循环慢三倍。

1 个答案:

答案 0 :(得分:2)

一种简单的方法是获取数字的对数,然后取对数结果,如下所示:

import math
def orderOfMagnitude(number):
    return math.floor(math.log(number, 10))