『壹』 關於java單精度與雙精度的問題
單簡悄鉛精度和雙精度的區別就是,雙精度要比單精度所存儲的位數要多,至於說3.14師雙精度,是因為Java中,默認的小數都是double類型,也就算雙精度的,如果要定義單精度的話,那就要在小數的後面加上一個f或者F,即 double d = 3.14; float f = 3.14f; 一定要注意後面有沒有「f」運蠢和「F」啊,這個初學的時候,經常會考攔好到。樓上說的,是對,但是,他那樣寫,就一定會報錯。記住,單精度的變數定義,一定要在值的後面加上標識。
『貳』 java中如何實現N個浮點數相加並確保其精確度
用BigDecimal類來計算,先用加法計算,再用結果除以1,通過devide除法方法來確認保留幾位小數,如下例:
importjava.math.*;
publicclassDemo
{
publicstaticvoidmain(String[]args){
BigDecimalbig1=newBigDecimal(123456.23456);
BigDecimalbig2=newBigDecimal(123.456);
BigDecimalbig3=newBigDecimal(1);
BigDecimaltemp=big1.add(big2);
System.out.println(big1.divide(big3,5,BigDecimal.ROUND_HALF_UP));//保留5位小數,返回bigDecimal
}
}