我想将浮点数0.002116
转换为2.116m(milli)
。我看到了将浮点数125510.92808470126
转换为125.51K
但输出具有上述浮点值的0
的库。
到目前为止,我尝试过numerize python库。
答案 0 :(得分:0)
这可能有效,可以根据需要更改:
#!/usr/bin/env python
pfx_up = [(1e3, 'kilo'), (1e6, 'mega'), (1e9, 'giga'), (1e12, 'tera')]
pfx_down = [(0.001, 'milli'), (1e-6, 'micro'), (1e-9, 'nano'), (1e-12, 'pico'), (1e-15, 'femto')]
def make_prefix( num ) :
result = str(num)
if num > 1 :
for p in pfx_up :
if num > p[0]*10 :
result = '%.2f %s' % (num / p[0], p[1])
else :
for p in pfx_down :
if num < p[0]*100 :
result = '%.2f %s' % (num / p[0], p[1])
return result
if __name__ == '__main__' :
print make_prefix(0.01234)
print make_prefix(1234342)
print make_prefix(12343464356)
print make_prefix(0.00001234)
print make_prefix(0.0000001234)
'''
outputs:
12.34 milli
1234.34 kilo
12.34 giga
12.34 micro
0.12 micro
'''