私は通貨変換のアンドロイドアプリケーションで作業していますが、倍精度に倍精度を乗ろうとしていますが、乗算後に正しい値が得られません。私もBigDecimalを試しても、正しい量を得られませんでした。倍を乗算する最良の方法は何でしょうか?あなたが短い小数の事項の正確な表現通貨の計算、のようなものをやっている場合は、それがすべてでダブル関与しないことが最良であるBigDecimalを2倍を乗算する方法
second_amount = Double.parseDouble();
bdf = new BigDecimal(second.getText().toString());
//first_amount = Double.parseDouble(first.getText().toString());
bds = new BigDecimal(second.getText().toString());
BigDecimal bdr = bdf.multiply(bds);
//result = first_amount * second_amount;
second.setText("" + bdr);
あなたは正しいダブルスを得ています。あなたが理解していないことは、ダブルスの仕組みです。倍精度は無限の精度ではなく、10進数を格納しません。 2進数 - 2と1/2の累乗を格納します。したがって、.3のような単純な部分は正確に二重に格納されません。 –
正しい値の代わりに何を得ていますか?私はあなたが乗算を正しく行っていると言わなければなりません。 –
@ OleV.V。私が1.9062に100を掛けていると、私は1910.00になります –