2

我有一个项目要求我用 java 设计一个计算器,我应该让用户选择显示 50 位或 100 位。

当我进行乘法运算或任何其他大数字运算时,您知道的问题不会显示所有数字,它将显示大约 20 位数字,左边将显示为 E(某个数字)!

我尝试使用BigDecimalDecimalFormat但无法解决。

4

2 回答 2

5

查看BigDecimal课程(BigInteger如果您对小数位不感兴趣,请查看课程。)。它应该打印任意数量的数字就好了。(无需使用DecimalFormat顺便说一句。)

BigDecimal x = new BigDecimal("123456789123456789123456789");
BigDecimal y = new BigDecimal("987654321987654321987654321");

BigDecimal z = x.multiply(y);

System.out.println(z);

输出:

121932631356500531591068431581771069347203169112635269
于 2012-07-26T12:01:20.707 回答
0

使用 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
于 2012-07-26T12:05:54.270 回答