Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
SET DECIMALS has no affect in Visual FoxPro executable -
Message
From
04/01/2005 07:57:12
Hilmar Zonneveld
Independent Consultant
Cochabamba, Bolivia
 
 
To
04/01/2005 07:20:24
General information
Forum:
Visual FoxPro
Category:
Coding, syntax & commands
Environment versions
Visual FoxPro:
VFP 6 SP5
OS:
Windows XP SP1
Network:
Windows 2000 Server
Database:
Visual FoxPro
Miscellaneous
Thread ID:
00974042
Message ID:
00974048
Views:
20
>I have a legacy Visual FoxPro 6.0 application where I need to do a simple multiplication where one of the terms have more than 4 significant digits. I have tried the following code, but this has no affect whatsoever:
>
> local nLabor as double
> local nCaseMix as double
> local nLaborComponent as double
>
> set decimals to 8
>
> nLabor = 0.76775
> nCaseMix = 3807.07
>
> nLaborComponent = nLabor * nCaseMix
>
>At the Visual FoxPro command prompt, nLaborComponent will correctly be computed as 3186.25. When compiled to an executable, 3186.59 is the result (what you would get if nLabor were rounded to 0.7678).
>
>Is there a way to address this in native Visual FoxPro? If not I will try to write a simple DLL to handle the basic arithmetic.

Some SET commands are scoped to the current datasession, meaning that you may have to set them at a specific form.

If the result is as if nLabor were rounded to four decimals, that looks as if some of your data might be of type Currency. Check this, and if necessary, convert to numeric with mton() before doing the calculation.
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
Reply
Map
View

Click here to load this message in the networking platform