2014-03-04 66 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。