2014-03-04 38 views
0

我认为这是一个简单的问题,但我想知道如何总结任何数字的Java。任何数字的总和

如果我们在其MAX_VALUE中添加任何“否”,它会显示-ve no。

12344587387873878 + 374892 = ? e.g

任何逻辑。

回答

1

如果你想存储任何号(技术上的例子可能是一个漫长),你将要使用BigDecimalBigInteger也可以使用,如果你知道你的总和将是一个整数。

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。或者,您可以使用科学记数法。

,你可以通过BigDecimal一个字符串。

BigDecimal bigD1 = new BigDecimal("1234458738787387"); 

作为一个警告,BigDecimal确实有它的问题与非常高的准确性数字。它不能准确地表示Pi,或者甚至例如1/3。