我认为这个问题很简单,但我想知道如何在java中加总任何数字。
如果我们向MAX_VALUE
添加任何no,则有特定范围的数据类型,它会打印-ve no。
例如12344587387873878 + 374892 = ?
任何逻辑。
答案 0 :(得分:2)
您可以使用BigInteger
。
查看BigInteger
班。
此外,您可以自己实现。
见这里:
How would i add very large Numbers represented as Strings i.e 50 digit numbers
答案 1 :(得分:1)
如果您要存储 任何 号码(从技术上讲,您的示例可能很长 em>),您需要使用BigDecimal
。如果您知道您的总和将是一个整数,也可以使用BigInteger
。
BigDecimal
示例;
BigDecimal bigD1 = new BigDecimal(1234458738787.387*1000);
BigDecimal bigD2 = new BigDecimal(374892.5);
System.out.println(bigD1.add(bigD2));
输出: 1234458739162279.5 。
由于12344587387873878
太大而无法存储为整数,因此无法将其作为文字(所有非浮点文字都是隐式整数)输入到BigDecimal
构造函数中。所以我自己将它除以1000,然后在构造函数中将其除以*1000
。或者,您可以使用科学记数法。
OR ,您可以将BigDecimal传递给字符串。
BigDecimal bigD1 = new BigDecimal("1234458738787387");
作为警告,BigDecimal确实存在非常高精度数字的问题。它无法准确地表示Pi,甚至不能代表1/3。