我如何能转换一个字符串,如“12.34”到双在Java?
当前回答
你可以使用double . parsedouble()将String转换为double类型:
String text = "12.34"; // example String
double value = Double.parseDouble(text);
对于你的案例,它看起来像你想要:
double total = Double.parseDouble(jlbTotal.getText());
double price = Double.parseDouble(jlbPrice.getText());
其他回答
还有另一种方法。
Double temp = Double.valueOf(str);
number = temp.doubleValue();
Double是一个类,“temp”是一个变量。 “number”是你要找的最终数字。
您只需要使用Double解析String值
String someValue= "52.23";
Double doubleVal = Double.parseDouble(someValue);
System.out.println(doubleVal);
试试这个, BigDecimal bdVal = new BigDecimal(str);
如果你想要双倍,那就试试 Double d = Double. valueof (str); System.out.println (String.format(“%。3f", new BigDecimal(d)));
使用新的BigDecimal(string)。这将保证以后的正确计算。
作为一个经验法则-总是使用BigDecimal敏感的计算,如金钱。
例子:
String doubleAsString = "23.23";
BigDecimal price = new BigDecimal(doubleAsString);
BigDecimal total = price.plus(anotherPrice);
使用double . parsedouble()而没有周围的try/catch块可能会导致潜在的NumberFormatException,输入的双字符串不符合有效的格式。
Guava为此提供了一个实用程序方法,如果你的字符串无法解析,该方法将返回null。
https://google.github.io/guava/releases/19.0/api/docs/com/google/common/primitives/Doubles.html tryParse(以)
Double valueDouble = Doubles.tryParse(aPotentiallyCorruptedDoubleString);
在运行时,格式错误的String输入会产生赋值给valueDouble的空值
推荐文章
- 在流中使用Java 8 foreach循环移动到下一项
- 访问限制:'Application'类型不是API(必需库rt.jar的限制)
- 用Java计算两个日期之间的天数
- 如何配置slf4j-simple
- Printf与std::字符串?
- 在Jar文件中运行类
- 带参数的可运行?
- 不区分大小写的“in”
- 我如何得到一个字符串的前n个字符而不检查大小或出界?
- 我可以在Java中设置enum起始值吗?
- Java中的回调函数
- 如何在PHP中截断字符串最接近于一定数量的字符?
- c#和Java中的泛型有什么不同?和模板在c++ ?
- 在Java中,流相对于循环的优势是什么?
- Jersey在未找到InjectionManagerFactory时停止工作