更快地在Python中移动小数以删除零?

我有各种各样的数字,总是以0和1为界.这些数字的范围是值,例如

.9, .08, .00024, .00000507

我的目标是将这些数字转换为以下数字

.9, .8, .24, .507

也就是说,我想删除小数点后的任何零.

我有以下代码来执行此操作.有没有办法在性能方面更快地做到这一点?

import math
x=.009
n = int(-math.log10(x))
x *= math.pow(10, n)

最佳答案 更快的方法(使用更大的数字变得更快):

def method2(x):
    while x < 0.1:
        x *= 10
    return x

甚至更快:

def method3(x):
    while x < 0.01:
        x *= 100
    while x < 0.1:
        x *= 10
    return x

这样做的有趣方法(慢于问题):

def remove_zeros(a):
    return float("0." + str(long(str(1+a)[2:])))
点赞