我需要編寫一個計算數學公式的簡單程序。 這裏唯一的問題是其中一個變量可以取值10^100。 因此,我不能用C++/C編寫這個程序(我不能使用像gmp這樣的外部庫)。 幾個小時前,我讀到Python能夠計算出這樣的值。 我的問題是:爲什麼 處理非常大的數字
print("%.10f"%(10.25**100))
被返回的數量"118137163510621843218803309161687290343217035128100169109374848108012122824436799009169146127891562496.0000000000"
代替 "118137163510621850716311252946961817841741635398513936935237985161753371506358048089333490072379307296.453937046171461"
?
再說下面的答案,還有你的字符串格式代碼的問題。您特別要求小數點後10位數字。爲什麼你會期望輸出15位數字?另外,請記住,使用'%'進行打印*實際上會根據說明符轉換*值。因此,即使使用'decimal'模塊,如果使用'%.10f'打印它,Python將首先將該值轉換爲'float',並且您仍然會得到相同的結果。 –
僅供參考,Python浮點數與C雙精度浮點數相同,並具有53位精度(幾乎在所有平臺上)。那大約有16或17位十進制數字。這就是爲什麼你顯示的兩個結果在它們開始時的許多小數位後不同意。 –