如何在java中显示50位数或更多(例如乘法)?

时间:2012-07-26 11:59:58

标签: java calculator digits

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

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

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

2 个答案:

答案 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