Have you looked into using BigDecimal to handle the rounding?

Dawn Siegrist

-----Original Message-----
From: Xu, Weining [mailto:Weining.Xu@AIG.com]
Sent: Thursday, December 20, 2001 8:05 AM
To: 'java400-l@midrange.com'
Subject: RE: DecimalFormat


Joe,

May be I didn't say clearly on my question.  Add 0.005 to the number prior
to the rounding would cause the number always add one to the last decimal,
such as 2.3237 became 2.33, which is not what I want.  I just need to do
normal rounding, meaning if 5 and up goes up, 4 and below takes off.

Does anyone know if using double instead of float would give better rounding
results?

Wayne


-----Original Message-----
From: Joe Pluta [mailto:joepluta@PlutaBrothers.com]
Sent: Thursday, December 13, 2001 9:36 AM
To: java400-l@midrange.com
Subject: RE: DecimalFormat


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?

_______________________________________________
This is the Java Programming on and around the iSeries / AS400 (JAVA400-L)
mailing list
To post a message email: JAVA400-L@midrange.com
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/cgi-bin/listinfo/java400-l
or email: JAVA400-L-request@midrange.com
Before posting, please take a moment to review the archives
at http://archive.midrange.com/java400-l.
_______________________________________________
This is the Java Programming on and around the iSeries / AS400 (JAVA400-L)
mailing list
To post a message email: JAVA400-L@midrange.com
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/cgi-bin/listinfo/java400-l
or email: JAVA400-L-request@midrange.com
Before posting, please take a moment to review the archives
at http://archive.midrange.com/java400-l.


As an Amazon Associate we earn from qualifying purchases.

This thread ...


Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.