如何以小数点前只有零的方式打印任何浮点数?
例如:如何将4.082E-08打印为0.4082E-07?
num = 4.082E-08
# Do something.
print num # Here I need to print 0.4082E-07
答案 0 :(得分:1)
首先,我可能错了,但我认为4.082E-08实际上是0.4082E-07 更正。
如果您想限制长度(打印的字符数),建议您查看format function。
>>> print('{:010.3E}'.format(4.082E-08))
04.082E-08
如果你想打印一个特定的10次幂,你可以简单地除以这个幂并自己打印指数:
>>> print("{}E-07".format(num/1e-7))
0.4082E-07
def ppow(num,power):
return "{}E{}".format(num/10**power,int(power))
print(ppow(num,-7))
>>> print(ppow(num),-7)
0.4082E-7
最后,如果你总是只想要一个零,你只需要动态计算十的幂。在这种情况下,它比科学记数法中的通常指数多一个(基数为10的记录的地板)。
import math
def str_leadingzero(num):
power = math.floor(math.log10(num))+1
ppow(num,power)
>>> str_leadingzero(num)
0.4082E-7
>>> str_leadingzero(4.082E08)
0.4082E9
当然这些spinets可能不是最佳解决方案,但我希望你能得到这个想法并实现自己的想法。