Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Currency calculations. Bug?
Message
From
31/03/2011 08:07:12
Hilmar Zonneveld
Independent Consultant
Cochabamba, Bolivia
 
General information
Forum:
Visual FoxPro
Category:
Troubleshooting
Environment versions
Visual FoxPro:
VFP 9 SP1
OS:
Windows XP SP2
Miscellaneous
Thread ID:
01505515
Message ID:
01505666
Views:
32
The problem is that (a) all intermediate results are converted to currency (and rounded to 4 digits), and (b) you divide first. You should do the multiplication first in such cases. It also often helps to convert intermediate results to normal numbers, with the mton() function.

>It is expected that result of calculations may be slightly different depending on the initial precision, but the difference in tens units?
>Anyone can shed light on it?
>
>
>* Tested in versions VFP5, VFP7, VFP 9 and VFP 9 Sp1
>CLEAR
>CLOSE tables all
>CREATE CURSOR testcrs (fldn N(12,4), fldcur Y) 
>ln=300000
>
>INSERT INTO testcrs VALUES (ln,ln)
>n1=43.05
>n2=44.06
>
>?"Variable:         ", n2/n1 * ln, ln * n2/n1		&& ~same
>?"Numeric field:    ", n2/n1 * fldn, fldn * n2/n1	&& ~same
>
>?"Currency field:   ", n2/n1 * fldcur, fldcur * n2/n1     && 307050.0000,        307038.3275        different results ?!
>?"Currency2Numeric: ", n2/n1 * MTON(fldcur), MTON(fldcur) * n2/n1  && ~same
>
>
>
>Thanks in advance
>
>Yuri Rubinov
Difference in opinions hath cost many millions of lives: for instance, whether flesh be bread, or bread be flesh; whether whistling be a vice or a virtue; whether it be better to kiss a post, or throw it into the fire... (from Gulliver's Travels)
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform