Java で電卓を設計するように依頼するプロジェクトがあり、ユーザーが 50 桁または 100 桁を表示するように chioices を配置する必要があります。
ご存知のように、たとえば乗算やその他の演算を大きな数字で行うと、すべての桁が表示されず、約 20 桁が表示され、左側が E(数値) になります。
BigDecimalandを使用してみDecimalFormatましたが、解決できませんでした。
Java で電卓を設計するように依頼するプロジェクトがあり、ユーザーが 50 桁または 100 桁を表示するように chioices を配置する必要があります。
ご存知のように、たとえば乗算やその他の演算を大きな数字で行うと、すべての桁が表示されず、約 20 桁が表示され、左側が E(数値) になります。
BigDecimalandを使用してみDecimalFormatましたが、解決できませんでした。
BigDecimalクラス (または、小数点以下の桁数に興味がない場合はクラス)を見てくださいBigInteger。任意の桁数を問題なく出力する必要があります。DecimalFormat(ところで使用する必要はありません。)
BigDecimal x = new BigDecimal("123456789123456789123456789");
BigDecimal y = new BigDecimal("987654321987654321987654321");
BigDecimal z = x.multiply(y);
System.out.println(z);
出力:
121932631356500531591068431581771069347203169112635269
BigDecimalの使用
System.out.println(new BigDecimal(1.1).multiply(new BigDecimal(1.8)));
104桁を印刷します
1.9800000000000002087219286295294335439472797061332458086428264139311483660321755451150238513946533203125
valueOfを使用するdoubleと、期待どおりに変換されます
System.out.println(BigDecimal.valueOf(1.1).multiply(BigDecimal.valueOf(1.8)));
プリント
1.98