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