簡體   English   中英

如何避免 Python 用科學記數法打印數字?

[英]How to avoid Python printing a number with scientific notation?

我知道已經發布了一些像我這樣的問題,但我的情況有點不同。 我想避免使用科學記數法,但我遇到了一個問題:我無法在執行{:.df}格式化我的輸出,因為在運行腳本之前我不知道位數。 事實上,這個輸出是對輸入進行計算的結果。 這是有人建議我做的事情:

("{:.%df}" % number_of_digits(result[i])).format(result[i])

遺憾的是它不起作用。 這是一段更大的代碼,您可以很好地理解:

result = [n / 1000000**3, n / 100000**3, n / 10000**3, n / 1000**3, n / 100**3, n / 10**3, n]
for i in range(len(volume_units)):
    print(str(n) + ' ' + volume_units[choice - 1] + " = " + ("{:.%df}" % number_of_digits(result[i])).format(result[i]) + ' ' + volume_units[i])

這是number_of_digits函數的代碼:

def number_of_digits(number):
    counter = 0
    while number > 0:
        number //= 10
        counter += 1
    return counter

非常感謝會回答的人!

你的輸出格式是什么樣的?

就像這樣:輸出格式

length = len(str(abs(your_number)))
format_string = '{:.' + str(length) + 'f}'
print format_string.format(your_number)

您需要針對所需的格式類型和數字變量進行調整。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM