2010-11-26 73 views
0

我正面臨大數小數的問題。下面的代碼片段會解釋我的問題:大十進制解析問題

BigDecimal parsedValue = (BigDecimal) decimalFormat.parse(input); 

這裏輸入一個字符串類型。現在假設輸入的值是135abc24在這種情況下,parsedValue的值是但我想檢查這樣的輸入並給出錯誤而不是截斷字符串和其餘部分。只是想添加輸入字符串也可能包含指數nos,所以我甚至不能檢查數字字符串。請讓我知道,如果你想進一步的信息或或問題不明確,

在此先感謝。

回答

6

您可以使用BigDecimal的String constructor創建BigDecimal(請參閱鏈接瞭解詳細信息),並在您的輸入字符串之前應用您希望的任何轉換。如果輸入不是有效表示,構造函數會拋出一個NumberFormatException

2

根據documentationDecimalFormat.parse()支持以ParsePosition引用的形式的第二個參數,該參數用解析停止的位置進行更新。然後,您可以將它與字符串的開頭進行比較,並確定整個字符串是否被接受。

+0

嗨放鬆,謝謝你的回覆。我沒有嘗試過這個選項,因爲我用Jens的答案得到了期望的結果。但我會試試這個,肯定會在這裏更新。謝謝! – Harmit 2010-11-29 11:59:25

+0

是的,這是解決問題的另一種選擇。正在經歷老問題時,我發現了我的評論。晚點比從未更好:) – Harmit 2012-09-03 10:12:24