2

私はアンドロイド用の単位変換アプリを書いています.doublesを使用して計算を実行し、それらを取得しています。結果が正確ではないことに今気づきました。これが私がやりたかったことです:

EditText InputInMeters = (EditText) findViewById(R.id.****);
EditText AnotherTextBoxWIO = (EditText findViwById(R.id.****);
String ValueInMeters = InputInMeters.getText().toString();
double meters = Double.parseDouble(ValueInMeters);
double kilometers = (meters * 1000);
AnotherTextBoxWIO.setText(kilometers+"");

これは 1 や 10 などの値ではうまく機能しますが、123.4 などの値では出力は 0.1232(9) になります。調査の結果、私は BigDecimals について知りましたが、私の疑問は、どうすればこれを行うことができますか (2 つ以上の大きな小数を乗算してから文字列に変換する)、BigDecimals を使用しますか?

4

1 に答える 1

17
BigDecimal bd1 = new BigDecimal(string);
BigDecimal bd2 = new BigDecimal(string2);

Bigdecimal result = bd1.multiply(bd2);
System.out.println(result.toString());
于 2013-07-12T21:43:19.730 に答える