2012-05-15 91 views
2

如何連接BigDecimal中的兩個數字?我有這樣的例子:連接兩個數字

BigDecimal d = BigDecimal.valueOf(5.5); 
     int a = 1; 
     int b = 11; 

,我想Concat的d.ad.b來生成same length5.5015.511不使用分割或其他操作!

是否有指示使用BigDecimal直接創建?

+0

級聯除了空字符串以外的任何東西都會改變長度,並且在任何情況下都不能在沒有其他操作的情況下完成。誰發佈了這個作業,爲什麼它的定義很差? –

+0

這功課嗎? a和b只能有兩位數字,或者任意數字的數字?什麼應該是任意數字的結果? – Pablo

回答

7

使用事實BigDecimal可以解析蜇傷,並且該字符串很容易連接。

BigDecimal d = BigDecimal.valueOf(5.5); 
int a = 1; 
int b = 11; 

BigDecimal da = new BigDecimal(String.format("%s%02d", d, a)); 
BigDecimal db = new BigDecimal(String.format("%s%02d", d, b)); 

System.out.println(da); 
System.out.println(db); 

輸出:

5.501 
5.511 

長度在%02d是硬編碼。您可以通過檢查String.valueOf(a).length()動態生成格式字符串。

+0

該死!你擊敗了我!看起來合法! :) – ksm

+1

這不起作用,請參閱問題中的編輯://它可能是5.777777777778888888 .. – Pablo

+0

那麼在這種情況下的預期行爲是什麼? – aioobe

4
da = d.add(new BigDecimal("0.00" + a); 
db = d.add(new BigDecimal("0.0" + b); 
1

你既可以:

  • 將它們轉換爲字符串,將它們連接起來,然後通過1000返回一個新的BigDecimal對象
  • 分A和B,並將它們添加到d
+0

除了他(出於某種奇怪的原因)說*而不使用鴻溝*。 – aioobe