我如何能转换一个字符串,如“12.34”到双在Java?
当前回答
再次引用上面Robertiano的引用-因为这是迄今为止最通用和本地化自适应的版本。它值得一个完整的帖子!
另一个选择:
DecimalFormat df = new DecimalFormat();
DecimalFormatSymbols sfs = new DecimalFormatSymbols();
sfs.setDecimalSeparator(',');
df.setDecimalFormatSymbols(sfs);
double d = df.parse(number).doubleValue();
其他回答
您只需要使用Double解析String值
String someValue= "52.23";
Double doubleVal = Double.parseDouble(someValue);
System.out.println(doubleVal);
还有另一种方法。
Double temp = Double.valueOf(str);
number = temp.doubleValue();
Double是一个类,“temp”是一个变量。 “number”是你要找的最终数字。
使用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的空值
要将字符串转换回double类型,请尝试以下操作
String s = "10.1";
Double d = Double.parseDouble(s);
parseDouble方法将达到预期的效果,Double.valueOf()方法也是如此。
试试这个, BigDecimal bdVal = new BigDecimal(str);
如果你想要双倍,那就试试 Double d = Double. valueof (str); System.out.println (String.format(“%。3f", new BigDecimal(d)));
推荐文章
- Eclipse调试器总是阻塞在ThreadPoolExecutor上,没有任何明显的异常,为什么?
- 我如何检查如果一个变量是JavaScript字符串?
- 如何显示有两个小数点后的浮点数?
- Java生成两个给定值之间的随机数
- 如何有效地从数组列表或字符串数组中删除所有空元素?
- 比较JUnit断言中的数组,简洁的内置方式?
- 在每个列表元素上调用int()函数?
- codestyle;把javadoc放在注释之前还是之后?
- 如何在Spring中定义List bean ?
- 将Set<T>转换为List<T>的最简洁的方法
- 在JavaScript中,什么相当于Java的Thread.sleep() ?
- 在Lua中拆分字符串?
- 使用Java重命名文件
- URL从Java中的类路径加载资源
- .toArray(new MyClass[0]) or .toArray(new MyClass[myList.size()])?