The first problem I can't help with, Wayne, since it's intermittent and I've
never seen anything like it, but the second problem is pretty simple. In
order to round up to two decimal places, just add .005 prior to the
rounding. To round one decimal place, add .05, to round three places, add
.0005. For example:
n2 = Float.parseFloat(two.format(n2 + .005));
Hope this helps a little.
Joe
> -----Original Message-----
> From: Xu, Weining
>
> I use DecimalFormat to round float variables into either two decimals or
> zero decimal by using:
> DecimalFormat two = new DecimalFormat("0.00");
> DecimalFormat zero = new DecimalFormat("0.");
>
> if I have:
> float n1 = 1.245, n2 =0;
> n1 = Float.parseFloat(zero.format(n1));
> n2 = Float.parseFloat(zero.format(n2));
>
> I have two problems here:
> 1) for the zero decimal format, if the float variable is 0.0, like n2.
> sometimes (again not always) the formatted value is 1, not 0 as
> expected ( I
> debugged and found that
> zero.format(n2)) return a string of 1. I have tried use
> DecimalFormat("#."), without dot as DecimalFormat("#"). They
> all have the
> same results. Anything wrong here?
>
> 2) for two decimal format, 1.245 would return 1.24 rather than 1.25. This
> is what JAVA API says it's suppose be. I need to round the
> number to 1.25.
> What should I do?
>
> Should I use other method to round the numbers? What that will be?