Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to round to the nearest 0.05? [duplicate]

Tags:

java

rounding

I'm trying to find a way on how to round to the nearest 0.05 in java. Let's say that I have the following numbers:

0.33
0.02
0.874
0.876

This should become:

0.35
0.00
0.85
0.90

I tried many things and I can only get it to round to n places behind the comma by using BigDecimal, but I can't seem to find a way for this one.

Can someone help me?

EDIT: Thank you for all your help, I am amazed at how easy this could be done. And how do I get the double converted into a string properly? I can't use Double.toString(double d) because for example the string will be "0.9" instead of "0.90"?

like image 798
n00b1990 Avatar asked Dec 18 '25 04:12

n00b1990


1 Answers

0.05 == 1/20, right? Therefore, what you need is just the nearest number with dividing by 1/20, so, you may multiply this number by 20, get the nearest number with dividing by 1, then get the initial things.

TL;DR: you just may just multiply it by 20, round and divide by 20 again:

public double customRound(double num) {
    return Math.round(num * 20) / 20.0;
}
like image 100
Dmitry Ginzburg Avatar answered Dec 20 '25 20:12

Dmitry Ginzburg



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!