我有一个项目要求我用 java 设计一个计算器,我应该让用户选择显示 50 位或 100 位。
当我进行乘法运算或任何其他大数字运算时,您知道的问题不会显示所有数字,它将显示大约 20 位数字,左边将显示为 E(某个数字)!
我尝试使用BigDecimal,DecimalFormat但无法解决。
我有一个项目要求我用 java 设计一个计算器,我应该让用户选择显示 50 位或 100 位。
当我进行乘法运算或任何其他大数字运算时,您知道的问题不会显示所有数字,它将显示大约 20 位数字,左边将显示为 E(某个数字)!
我尝试使用BigDecimal,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