我有一个项目,要求我用java设计一个计算器,我应该为用户选择显示50位或100位的chioices。
如你所知,当我进行乘法运算或大数字的任何其他操作时,问题不会显示所有数字,它将显示大约20位数字,左侧将显示为E(某个数字)!
我尝试使用BigDecimal
和DecimalFormat
,但我无法解决。
答案 0 :(得分:5)
如果您对小数位不感兴趣,请查看BigDecimal
类(或BigInteger
类。)。它应该打印任意数量的数字就好了。 (无需使用DecimalFormat
btw。)
BigDecimal x = new BigDecimal("123456789123456789123456789");
BigDecimal y = new BigDecimal("987654321987654321987654321");
BigDecimal z = x.multiply(y);
System.out.println(z);
<强>输出:强>
121932631356500531591068431581771069347203169112635269
答案 1 :(得分: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