0

小数点以下の桁数で問題が発生しています。次のコードスニペットは私の問題を説明します:

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

ここでの入力は文字列型です。ここで、入力の値が135abc24であると仮定します。この場合、parsedValueの値は135ですが、文字列と残りの部分を切り捨てるのではなく、そのような入力をチェックしてエラーを出します。入力文字列を追加したいだけでも指数番号が含まれている可能性があるため、数値文字列のみをチェックすることさえできません。さらに詳しい情報が必要な場合、または質問が明確でない場合は、お知らせください。

前もって感謝します。

4

2 に答える 2

6

BigDecimalのStringコンストラクターを使用して、BigDecimalを作成し(詳細についてはリンクを参照)、必要な変換を事前に入力文字列に適用できます。NumberFormatException入力が有効な表現でない場合、コンストラクターはaをスローします。

于 2010-11-26T12:02:09.107 に答える
2

ドキュメントによると、DecimalFormat.parse()は、参照の形式で2番目の引数をサポートしParsePositionます。これは、解析が停止した位置で更新されます。次に、それを文字列の先頭と比較して、文字列全体が受け入れられたかどうかを判断できます。

于 2010-11-26T11:41:33.980 に答える