我知道,不管操作系統,編程語言如何,都存在浮點錯誤。但是,我發現這個例子中沒有不準確的地方。這怎麼可能?我認爲計算需要將stirng轉換爲double,所以應該存在浮點不準確性!BigDecimal如何使浮點不準確?
import java.math.*;
class NoErrorBigDecimal {
public static void main(String[] args)
{
BigDecimal e1=new BigDecimal("1.6");
BigDecimal e2=new BigDecimal("0.1");
System.out.println("result of add : "+e1.add(e2));
System.out.println("result of multiplication : "+e1.multiply(e2));
}
}
浮點數不一定要在IEEE-754格式表示。例如,它們可以作爲BCD數字字符串或ASCII碼或其他方式處理。只要代碼能夠正確處理,就不會有精度損失,並且數字可以隨意變大或變小。 – 2015-07-11 00:14:47
謝謝。我知道了 – Volnyar
'BigDecimal'使用十進制,因此顯然可以表示任何可以用十進制表示的值。它不是二進制浮點類型 –