13
Multiply by 100000. Add 0.5. Truncate to integer. Then divide by 100000.
Code:
double original = 17.77777777;
int factor = 100000;
int scaled_and_rounded = (int)(original * factor + 0.5);
double rounded = (double)scaled_and_rounded / factor;
Try the following
double value = Double.valueOf(String.format(Locale.US, "%1$.5f", 5.565858845));
System.out.println(value); // prints 5.56586
value = Double.valueOf(String.format(Locale.US, "%1$.5f", 5.56585258));
System.out.println(value); // prints 5.56585
Or if you want minimal amount of code
Use import static
import static java.lang.Double.valueOf;
import static java.util.Locale.US;
import static java.lang.String.format;
And
double value = valueOf(format(US, "%1$.5f", 5.56585258));
regards,
DecimalFormat roundFormatter = new DecimalFormat("########0.00000");
public Double round(Double d)
{
return Double.parseDouble(roundFormatter.format(d));
}
public static double roundNumber(double num, int dec) {
return Math.round(num*Math.pow(10,dec))/Math.pow(10,dec);
}