2012-12-11 47 views
2

在Python功能math.log(1000, 10)返回
2.9999999998或一些近似值(neraly每三個整數確實是)蟒蛇整數逼近

其首先是種搞砸了,即使我想沒有多少(除整除測試)去做。
其次,它不是我想要的價值當然,我應該如何繼續?鑄造到int將顯然返回2而不是3 ...那麼使用什麼方法來獲得最接近的整數?在這種情況下,一般來說,請。

+2

'3 >> math.log10(1000)'' 3.0' –

+2

http://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html –

+1

HTTP://docs.python .org/3/library/functions.html#round – Dougal

回答

1

有人在我接受之前就刪除了他/她的答案,所以我寫了我的這只不過是一個總結。

在這種特定情況下,由於操作是math.log(1000, 10),它可以與math.log10(1000)被替換,顯示更加準確:我喜歡

兩個選項。

在更一般的情況下,round(math.log(1000,10))將2.999 ...舍入到整數3,所以這會更多地被問到。

+1

這個問題,也許是答案被刪除的原因是,它也將'math.log10(500)'例如舍入爲3.' math.log10'確實不錯,但'math.log10(10 * * 110)'返回'110.00000000000001',就像'math.log10(10 ** 110 - 10 ** 93)'一樣。 'math.log10(10 ** 20 - 10 ** 5)'返回'20.0'。如果你想得到確切的結果,你不能避免做整數算術。 –