I have vague memories of discussions around using the currency data type and why it's not a good idea because its precision is limited to 4 decimal places. You can actually end up introducing rounding errors that can be very difficult to hunt down. If I can find the references I'll post them back here.
-- rk -----Original Message----- From: ProfoxTech [mailto:[email protected]] On Behalf Of Laurie Alvey Sent: Tuesday, June 17, 2014 3:52 AM To: [email protected] Subject: Re: VAT Rates If you modify Peter's test program like this: CLEAR nNum = $0.01 nRate = $0.21 DO WHILE nNum < $100000 nVat = NTOM(ROUND(nNum*nRate,2)) nGross = NTOM(nNum + nVat) nMulti = NTOM(ROUND(nNum*(1+nRate),2)) IF nGross <> nMulti ? 'Value ' + STR(nNum,9,2) + ' differs. ' + STR(nGross,10,2) + STR(nMulti,10,2) EXIT ENDIF nNum = nNum + $0.01 ENDDO ? "Finished." so that all numerics are converted to CURRENCY, no errors occur. Currency data has its own way of doing arithmetic and rounding. I always use the Currency type for storing and computing financial transactions. Laurie _______________________________________________ Post Messages to: [email protected] Subscription Maintenance: http://mail.leafe.com/mailman/listinfo/profox OT-free version of this list: http://mail.leafe.com/mailman/listinfo/profoxtech Searchable Archive: http://leafe.com/archives/search/profox This message: http://leafe.com/archives/byMID/profox/DF1EEF11E586A64FB54A97F22A8BD044239C07739B@ACKBWDDQH1.artfact.local ** All postings, unless explicitly stated otherwise, are the opinions of the author, and do not constitute legal or medical advice. This statement is added to the messages for those lawyers who are too stupid to see the obvious.

