如何从 Java 中的字符串解析任何数字类型?

How do I parse ANY Number type from a String in Java?

如何从 Java 中的字符串解析任何数字类型?

我知道像 Integer.parseInt(myString)Double.parseDouble(myString) 这样的方法,但我最想要的是像 Number.parseNumber(myString) 这样的方法,它不存在。我怎样才能以另一种方式实现这种行为? (我希望解析后的数字以例如小数位数的形式反映字符串 "exactly")。

示例:

"0" => 数字(整数子类的内部)

"0.0" => 数字(Double 子类的内部)

此外,没有像检查小数点分隔符等丑陋之处

您可能正在寻找 BigDecimal

请记住,数字可以用多种形式表示为字符串。例如11.0000000 相同。

Number number = NumberFormat.getInstance().parse(myString);

似乎可以解决问题...

更好的方法是使用 BigDecimal class.

BigDecimal n = new BigDecimal("1.0");

所需值的方法

n.byteValue();  
n.intValue();  
n.shortValue();  
n.longValue();  
n.floatValue();  
n.doubleValue();