我有一段非常簡單的代碼,我認爲從用戶的角度來看錯誤的結果。爲什麼Java在浮點計算後顯示額外的值?
package com.test.sample;
public class Test {
public static void main(String[] args) {
float c,d;
c = (float) 12.47;
d = (float) 12.44;
d = c - d;
System.out.println("Hello the calculated value of a=" + d);
}
}
輸出是 Hello the calculated value of a=0.030000687
但我想a=0.030000000
這是一個完美的價值。
歡迎來到浮點數奇蹟!如果您真的感興趣,您應該閱讀以下內容:http://download.oracle.com/docs/ cd/E19957-01/806-3568/ncg_goldberg.html – Fred
float在二進制中是最接近可能的表示形式......它不可能是精確的,所以不完美。你知道,積累的錯誤最終註定了黑客帝國。 – Nishant
Look [Machine Precision](http://en.wikipedia.org/wiki/Floating_point#Machine_precision)它不是Java特定的。 – Nishant