I am stuck in the scenario below:
If x is 1.5 or lower then the final result will be x = 1. If x is large than 1.5 then x = 2.
The input number will be x/100.
For instance: input = 0.015 => x = 1.5 => display x = 1.
The problem I got is that float number is inaccurate. For example: input = 0.015 but actually it is something like 0.01500000000000002. In this case, x gonna be 1.500000000000002 which is large than 1.5 => display output is x = 2.
It happen so randomly which I don't know how to solve it. Like 0.5, 1.5 will give me the correct result. But 2.5, 3.5, 4.5, 5.5 will give me the wrong result. Then 6.5 will give me the correct result again.
The code I implemented is below:
float x = 0.015;
NumberFormat nf = DecimalFormat.getPercentInstance();
nf.setMaximumFractionDigits(0);
output = nf.format(x);
So depends on x, the output might be right or wrong. It is just so random.
I alos tried to use Math.round, Math.floor, Math.ceils but none of them seems work since float number is so unpredictable.
Any suggestion for the solution?
Thanks in advance.