如何从 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。
请记住,数字可以用多种形式表示为字符串。例如1
与 1.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();
如何从 Java 中的字符串解析任何数字类型?
我知道像 Integer.parseInt(myString)
和 Double.parseDouble(myString)
这样的方法,但我最想要的是像 Number.parseNumber(myString)
这样的方法,它不存在。我怎样才能以另一种方式实现这种行为? (我希望解析后的数字以例如小数位数的形式反映字符串 "exactly")。
示例:
"0" => 数字(整数子类的内部)
"0.0" => 数字(Double 子类的内部)
此外,没有像检查小数点分隔符等丑陋之处
您可能正在寻找 BigDecimal。
请记住,数字可以用多种形式表示为字符串。例如1
与 1.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();