Thursday, 15 May 2014

java - Conversion of BigDecimal to double -


When changing BigDecimal to double, additional precision is added. Can you please suggest this for pre:

  BigDickel daisy = new buggycallell (1.23456789123457E + 17); Double value = deci.doubleValue (); Println (value);  

and print the value - 1.23456789123456992E17 . How is the last digit 7 converted into 6992 ? Can I get the same input after passing the transition again?

There are useful ways and can help you investigate this problem:

  BigDicale dc = new buggy (1.23456789123457E + 17); Double value = deci.doubleValue (); Println (value); Println (Math.nextDown (value)); Println (Math.nextUp (value));  

Output is:

  1.23456789123456992 A17 1.23456789123456976 A 17 1.23456789123457008E17  

That's because you can see , Followed by ... 457008 followed by double number ... 456976 immediately ... 456 9 92 is done. Then BigDecimal.doubleValue () should be selected between the two closest numbers ... 456 9 92 and ... 457008 .

Actually you do not even need BigDecimal for this exam:

  double value = 1.23456789123457E +17; Println (value); // print 1.23456789123456992E17  

No comments:

Post a Comment