INFO: Format Function and International Settings (170550)



The information in this article applies to:

  • Microsoft Visual Basic Control Creation Edition for Windows 5.0
  • Microsoft Visual Basic Learning Edition for Windows 5.0
  • Microsoft Visual Basic Professional Edition for Windows 5.0
  • Microsoft Visual Basic Enterprise Edition for Windows 5.0
  • Microsoft Visual Basic Standard Edition, 32-bit, for Windows 4.0
  • Microsoft Visual Basic Professional Edition, 16-bit, for Windows 4.0
  • Microsoft Visual Basic Professional Edition, 32-bit, for Windows 4.0
  • Microsoft Visual Basic Enterprise Edition, 16-bit, for Windows 4.0
  • Microsoft Visual Basic Enterprise Edition, 32-bit, for Windows 4.0
  • Microsoft Access 1.1
  • Microsoft Access 2.0
  • Microsoft Access for Windows 95 7.0
  • Microsoft Access 97
  • Microsoft Excel for Windows 5.0
  • Microsoft Excel 97 for Windows
  • Microsoft Word 97 for Windows
  • Microsoft Excel for Windows 95

This article was previously published under Q170550

SUMMARY

The Format function does not always return the expected number format with certain international settings. This article explains this behavior and describes how the Format function interprets its parameters.

MORE INFORMATION

A common use of the Format function is to format numbers for a consistent display. To do this, two parameters are passed to Format. The first parameter is any valid numeric expression, such as 5555.5, "5555.5," etc. The second parameter is a format expression, such as "###,###.00."

The key point of emphasis is this: if the first parameter is a string representation of a number, such as "5555.5," Format expects it to be in the proper regional setting as portrayed in Control Panel / Regional Settings. However, Format always expects the second parameter to be in the "English (United States)" setting.

For example, if the regional setting is such that the decimal symbol is "," and the digit grouping symbol is ".", the following will occur:

Format(5555.5, "###,###.00") returns "5.555,50"
Format("5555,5", "###,###.00") returns "5.555,50"
Format("5.555,5", "###,###.00") returns "5.555,50"

Format("5555.5", "###,###.00") returns "55.555,00"
Format("5,555.5", "###,###.00") returns "5,56"

With the regional setting as described above, the number 5555.5 and the string "5555.5" are interpreted quite differently by Format.

Modification Type:MinorLast Reviewed:10/11/2006
Keywords:kbinfo kbProgramming KB170550