将字符串转换为Double或从bigdecimal转换为Double而不会丢失java中的任何精度

时间:2017-11-27 12:34:00

标签: java

我正在使用Java中的String方法将Double值转换为BigDecimal或从Double值转换为double.value()。但在转换为double后,精度值会被截断。 防爆。 Str="123.50"bigDecimalVal="455.780" 如果我使用Double方法将上述值转换​​为double.valueOf(),我会得到双值:

123.5 or 455.78.

其中' 0'在我输出的输出中都被截断了。

1 个答案:

答案 0 :(得分:0)

123.5和123.50两者在数学上是相同的,如果你想要正确的格式值,那么你可以创建一个持有者,它将同时保存一个值,显示一个为double。

class DoubleDecorator {
    final double val;
    final String string;
    DoubleDecorator(String str) {
        string = str;
        val = Double.parseDouble(str);
    }

   public String getDisplayValue(){
      return string;
   }
   public double getFormattedValue(NumberFormat format){
   //your code
   }
   public double getValue(){
     return val;
   }
   }