2

我搜索了很多但没有任何帮助:(假设我需要将 12.090.129.019.201.920.192.091.029.102.901.920.192.019.201.920 (葡萄牙语组分隔符:.)转换为 BigInteger 值。如何进行转换?我尝试使用NumberFormat,DecimalFormat 没有任何效果,或者我没有走正确的路:(

4

2 回答 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 回答