私はたくさん検索しましたが、何も役に立ちませんでした:( 12.090.129.019.201.920.192.091.029.102.901.920.192.019.201.920 (ポルトガル語のグループ区切り記号: .) を BigInteger 値に変換する必要があるとします。その変換を行う方法は? NumberFormat、DecimalFormat、何も機能しないか、正しい方法ではありませんでした:(
質問する
2476 次
2 に答える
9
NumberFormat
ポルトガル語 のインスタンスを取得してLocale
から、parse
その番号を取得します。これは、ロケール固有の小数点記号も処理します。
NumberFormat nf = NumberFormat.getNumberInstance(new Locale("pt", "PT"));
DecimalFormat df = (DecimalFormat)nf;
df.setParseBigDecimal(true);
BigDecimal decimal = (BigDecimal)df.parse("12.090.129.019.201.920.192.091.029.102.901.920.192.019.201.920");
BigInteger big = decimal.toBigInteger();
デモ。
于 2012-08-23T23:51:03.883 に答える
1
代わりにセパレーターを削除する方が簡単ではないでしょうか? Java は内部的にそれらに注意を払いません。
String num = "2.090.129.019.201.920.192.091.029.102.901.920.192.019.201.920";
BigInteger bigInt = new BigInteger(num.replaceAll("\\.", ""));
戻す必要がある場合は、 NumberFormat.format() を使用して値を戻すことができます。
于 2012-08-23T23:51:16.013 に答える