Knowledge Base

FIX: CSng Converted to CDbl for String Literals and Variables

Article ID: 127031

Article Last Modified on 10/29/2003


APPLIES TO


This article was previously published under Q127031

SYMPTOMS

Code using the function CSng() within Visual Basic is automatically converted to a CDbl by the compiler.

CAUSE

If a string literal, such as 1.1, or a string variable is placed inside of the CSng function, Visual Basic converts the function to CDbl. The following code demonstrates the problem:
Dim S As Single S=CSng("1.1")
				
When you run a program containing this code, Visual Basic changes it to this code:
   Dim S As Single S=CDbl("1.1")
				

WORKAROUND

To work around the problem, use another function that operates on the string. Then place this result inside the CSng function. For example, use this:
   S=CSng(Val("100"))
				

STATUS

This bug was corrected in Microsoft Visual Basic version 4.0 for Windows.

Additional query words: 3.00 buglist3.00 fixlist4.00

Keywords: kbbug kbfix KB127031