[Date Prev][Date Next][Thread Prev][Thread Next]
[Author Index] [Date Index] [Thread Index]
[SQR-USERS Info] [SQRUG Home Page]

Re: rounding error in SQR let command?



Rich,
Did you try any logical operators?
some thing like this

let #amount = &amount

if #amount <> &amount
   Show ' The amount after let statement is different'
end-if

SQR has a precision of 32 digits. When you dealing
with high precision number the sqr looks very
deceptive.

HTH

--- "Banks, Richard" <Richard.Banks@CBA.COM.AU> wrote:
> Ivan,
>
> Still getting my rounding error even when using
> round function
>
>   let #c = ROUND(&AMOUNT,2)
>   #debugB show ' SQL: Found Amount ' &amount ' for '
> $source ' via '
> $txn_type ' / ' #c
>
> SQL: Found Amount 199999999999999999.98 for AG1 via
> DR /
> 200000000000000000.000000
>
> Thanks anyway.
>
> > -----Original Message-----
> > From: Turner, Ivan [SMTP:Ivan.Turner@QWEST.COM]
> > Sent: Friday, 15 March 2002 1:49
> > To:   SQR-USERS@list.iex.net
> > Subject:      Re: rounding error in SQR let
> command?
> >
> > a,b,and c should all have the same value.
> >
> > let #a = ROUND(#amount,2)
> > let #b = ROUND(to_char($amount),2)
> > let #c = ROUND(&AMOUNT,2)
> >
> >
> > -----Original Message-----
> > From: Banks, Richard
> [mailto:Richard.Banks@CBA.COM.AU]
> > Sent: Tuesday, March 12, 2002 9:00 PM
> > To: SQR-USERS@list.iex.net
> > Subject: rounding error in SQR let command?
> >
> >
> > I'm retrieving a value from the database like so;
> >
> > begin-select
> > SUM(LINE.MONETARY_AMOUNT) &AMOUNT
> >
> >   let #amount = &AMOUNT
> >   let $amount = &AMOUNT
> >
> >   #debugB show ' SQL: Found Amount ' &amount ' / '
> #amount ' / ' $amount
> >
> > FROM [etc]
> >
> > -----
> >
> > My log has the following output;
> >
> > SQL: Found Amount 199999999999999999.98 /
> 200000000000000000.000000 /
> >
>
199999999999999999.9800000000000000000000000000000000
> >
> > ie the let #amount command is changing the value
> (albiet a tiny percentage
> > of the number in question).  I haven't noticed
> this with any other values
> > before not that I ever see numbers so large.
> >
> > If I try let #amount2 = to_number($amount) I still
> get the
> > rounding/conversion error for SQR
> >
> > or even simpler;
> >
> >   let $rich = '199999999999999999.98'
> >   let #rich = to_number($rich)
> >   show $rich ' / ' #rich
> >
> > produces the same problem.
> >
> > Any suggestions?  Just ignore?  Blame SQR or the
> O/S?
> >
> > FYI the number formatted is
> 200,000,000,000,000,000.00 and I can't even
> > pronounce it!  200 thousand (British not US)
> billions?
> >
> > Using SQR For PeopleSoft 8.16 (NT) on DB2
> >
> >
> > **************   IMPORTANT MESSAGE  **************
> > This e-mail message is intended only for the
> addressee(s) and contains
> > information which may be confidential. If you are
> not the intended
> > recipient
> > please advise the sender by return email, do not
> use or disclose the
> > contents, and delete the message and any
> attachments from your system.
> > Unless specifically indicated, this email does not
> constitute formal
> > advice
> > or commitment by the sender or the Commonwealth
> Bank of Australia (ABN 48
> > 123 123 124) or its subsidiaries.
> > **************************************************


__________________________________________________
Do You Yahoo!?
Yahoo! Sports - live college hoops coverage
http://sports.yahoo.com/