PRB: SET DECIMAL Limited to Four Decimals in Currency Data (192961)



The information in this article applies to:

  • Microsoft Visual FoxPro for Windows 5.0
  • Microsoft Visual FoxPro for Windows 5.0a
  • Microsoft Visual FoxPro for Windows 6.0

This article was previously published under Q192961

SYMPTOMS

The maximum number of decimal places allowed in a currency value is four. Using the SET DECIMAL command to set more than four decimal places in a currency value does not work.

RESOLUTION

You can use the Transform function to convert a currency value to the number of decimals you want, but this also changes the data type to character instead of currency type. You will note this problem, for instance, if you type the following in the Command window:
   x=$123.323
   ? TRANSFORM(x,'9999.9999999')
				

STATUS

This behavior is by design.

MORE INFORMATION

If the initial currency value has two decimals, setting SET DECIMAL to four pads two zeros at the end of the currency value.

Steps to Reproduce Behavior

Run the following commands in Command window or from a program:
      CLEAR ALL
      x=$37.493
      ?x       && displays 37.4938
      SET FIXED ON
      SET DECIMALS TO 2
      ?x       && displays 37.49
      SET DECIMAL TO  4
      ?x       && displays 37.4930
      SET DECIMALS to 7
      ?x       && displays 37.4930
      SET FIXED OFF
				
If the preceding code runs in Visual FoxPro 3.x, four decimals appear regardless of the setting of the SET DECIMAL command.

Modification Type:MajorLast Reviewed:3/10/2000
Keywords:kbprb KB192961