Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
![]() |
![]() |
Home -> Community -> Mailing Lists -> Oracle-L -> Slightly OT: Rounding Negative Numbers
I'm trying to consolidate some numbers generated by a PL/SQL report vs. a Java based report and these seem to be out due to rounding errors on negative numbers.
In PL/SQL if I for example, round to 2 decimal places:
SQL> select round(-0.875,2) from dual;
ROUND(-0.875,2)
-.88
In Java:
import java.*;
public class Round {
public static void main(String[] args) { double a = -0.875; int i = (int)java.lang.Math.round(a*100); double z = i; z = z / 100; System.out.println(z); } }
>java Round
-0.87
which is 0.01 different (1 pence in this case). If I use positive numbers (+0.875) when the answer is 0.88 for both PL/SQL and Java. PL/SQL's answer looks "more"correct to me for the negative value - but what is the mathematically correct rounding of -0.875?!
Thanks!
-- Please see the official ORACLE-L FAQ: http://www.orafaq.com -- Author: Bill Buchan INET: wbuchan_at_uk.intasys.com Fat City Network Services -- (858) 538-5051 FAX: (858) 538-5051 San Diego, California -- Public Internet access / Mailing Lists -------------------------------------------------------------------- To REMOVE yourself from this mailing list, send an E-Mail message to: ListGuru_at_fatcity.com (note EXACT spelling of 'ListGuru') and in the message BODY, include a line containing: UNSUB ORACLE-L (or the name of mailing list you want to be removed from). You may also send the HELP command for other information (like subscribing).Received on Wed Aug 28 2002 - 10:58:36 CDT
![]() |
![]() |