|
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 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.