Double value to round up in Java -


i have double value = 1.068879335 want round 2 decimal values 1.07.

i tried this

decimalformat df=new decimalformat("0.00"); string formate = df.format(value); double finalvalue = double.parsedouble(formate) ; 

this giving me following exception

java.lang.numberformatexception: input string: "1,07"      @ sun.misc.floatingdecimal.readjavaformatstring(floatingdecimal.java:1224)      @ java.lang.double.parsedouble(double.java:510) 

can 1 tell me wrong code.

finaly need finalvalue = 1.07;

note comma in string: "1,07". decimalformat uses locale-specific separator string, while double.parsedouble() not. happen live in country decimal separator ",", can't parse number back.

however, can use same decimalformat parse back:

decimalformat df=new decimalformat("0.00"); string formate = df.format(value);  double finalvalue = (double)df.parse(formate) ; 

but should instead:

double finalvalue = math.round( value * 100.0 ) / 100.0; 

note: has been pointed out, should use floating point if don't need precise control on accuracy. (financial calculations being main example of when not use them.)


Comments

Popular posts from this blog

java - SNMP4J General Variable Binding Error -

windows - Python Service Installation - "Could not find PythonClass entry" -

Determine if a XmlNode is empty or null in C#? -