如何以小數點前只有零點的方式打印任何浮點數?如何將數字4.082E-08打印爲0.4082E-07?
例如:如何打印4.082E-08爲0.4082E-07?
num = 4.082E-08
# Do something.
print num # Here I need to print 0.4082E-07
如何以小數點前只有零點的方式打印任何浮點數?如何將數字4.082E-08打印爲0.4082E-07?
例如:如何打印4.082E-08爲0.4082E-07?
num = 4.082E-08
# Do something.
print num # Here I need to print 0.4082E-07
首先,我可能是錯的,但我認爲4.082E-08實際上是0.4082E-07
更正。
如果你想限制長度(打印字符數),我建議你看看format function。
>>> print('{:010.3E}'.format(4.082E-08))
04.082E-08
如果你要打印十特定的電源,你可以簡單地通過這種權力劃分和打印指數自己:
>>> 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
當然,這些尖晶石可能不是最佳的解決方案,但我希望你明白並實現你自己的想法。
[強制引導爲零的python科學記數法可能的重複](http://stackoverflow.com/questions/21266850/python-scientific-notation-with-forced-leading-zero) – bouteillebleu
撇開這兩個事實,申述不等同,你只需要處理這個單號?如果是這樣,'打印'0.4082E-09''就足夠了。或者你想要一個通用的解決方案?如果是這樣,完整的規格是什麼? –
我糾正了我的問題。我可以回答嗎? – Zaman