我重寫了一些科學的代碼,別人寫了一段時間回來,並在整個代碼常數之間的實際差別總是聲明:爪哇 - 2.0和2.00000000000D
final double value = 2.0000000000D;
用的顯然是任意長度應該是有意義的數字附加到它。我95%確定以這種方式宣佈變量實際上什麼都不做,並且將該值設置爲:
double value = 2.0;
將完全相同。但是可以肯定的是,我在問這麼一個問題,是否以這種方式聲明一個常量會產生任何(有意義的)區別,或者這可能僅僅是來自另一種語言的遺留物,它可能會有所作爲?
編輯:在回答下面的答案:是的,我問這個問題之前,我確認答案在這個特定的情況下是相同的。也許我應該更具體。是否曾經有過一個實例,我們希望添加額外的「重要」數字實際上會返回不同的數字?我想如果我們得到非常大或非常小的值,而浮點數開始有解決問題的可能性呢?
是的,我在問這個問題之前也證實了這一點。也許我應該更具體。是否曾經有過一個例子,我們會認爲事情並非如此? – user1337732
或者只是double值= 2; :) –
'System.out.println(0.05 + 0.05 + 0.05);'Java遵循[IEEE 754](https://en.wikipedia.org/wiki/IEEE_floating_point),有一些數字不能精確表示在二進制中(就像在十進制中,'1/3')。 –