如何在不损失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")` here

BigDecimal decimal = new BigDecimal(d);

之所以有效,是因为BigDecimal保持了“精度”,BigDecimal(String)构造函数将其设置为从右边的数字开始.,并在中使用它toString。因此,如果仅将其丢弃System.out.println(decimal);,它就会打印出来12.00

以上是 如何在不损失Java精度的情况下将String转换为Double? 的全部内容, 来源链接: utcz.com/qa/409346.html

回到顶部