如何在不损失Java精度的情况下将String转换为Double?
尝试如下
String d=new String("12.00");Double dble =new Double(d.valueOf(d));
System.out.println(dble);
输出:12.0
但我想获得12.00的精度
请让我知道正确的方法,而不在字符串类中使用format()方法
回答:
使用BigDecimal
而不是双重:
String d = "12.00"; // No need for `new String("12.00")` hereBigDecimal decimal = new BigDecimal(d);
之所以有效,是因为BigDecimal
保持了“精度”,BigDecimal(String)
构造函数将其设置为从右边的数字开始.
,并在中使用它toString
。因此,如果仅将其丢弃System.out.println(decimal);
,它就会打印出来12.00
。
以上是 如何在不损失Java精度的情况下将String转换为Double? 的全部内容, 来源链接: utcz.com/qa/409346.html