にdouble値を追加している:間違い、私は次のコードを持っているのjava
double d1=1000000000000000000.0; //which is equivalent to 1.0e^18
double d2=3434.0;
System.out.println(d1+d2);
問題は何の代わり1000000000000003434.の1000000000000003460を出力しますか?
にdouble値を追加している:間違い、私は次のコードを持っているのjava
double d1=1000000000000000000.0; //which is equivalent to 1.0e^18
double d2=3434.0;
System.out.println(d1+d2);
問題は何の代わり1000000000000003434.の1000000000000003460を出力しますか?
@Anthony Pegramが正しいです。このような精度が必要な場合は、BigDecimalを使用します。
必要な記憶域の数が予想を超えています。このような場合はBIG Decimalを使用してください。
import java.math.BigDecimal;//remember to import this
public class UseBigDecimal{
public static void main(String[]args){
double d1=1000000000000000000.0;
double d2=3434.0;
BigDecimal bVal1 = new BigDecimal(d1);
BigDecimal bVal2 = new BigDecimal(d2);
BigDecimal sum = bVal1.add(bVal2);//you call the add() method not bVal1+bVal2
System.out.println ("Sum of BigDecimals " +sum.toString());
//need to call toString()
}
}
ダブルには必要な精度がありません。有効数字が足りません。 –
@AnthonyPegram - あなたが正しいので、答えではなく、コメントにしてください。 – Paul
@AnthonyPegram - また、代替案を提供しています。 – Mob