Name
CSng Function
Named Arguments
No
Syntax
CSng(expression
)
-
expression
Use: Required
Data Type: Numeric or String
The range of
expression
is -3.402823E38 to -1.401298E-45 for negative values, and 1.401298E-45 to 3.402823E38 for positive values.
Return Value
expression
cast as a Single data type
Description
Returns a single-precision number
Rules at a Glance
expression
must evaluate to a numeric value; otherwise, a type-mismatch error is generated.If the value of
expression
is outside the range of the Double data type, an overflow error is generated.
Example
Dim sngMyNumber As Single If IsNumeric(sMyNumber) Then sngMyNumber = CSng(sMyNumber) End If
Programming Tips and Gotchas
You can use
IsNumeric
to test an expression before passing it toCSng
.When converting a string representation of a number to a numeric, you should use the data type conversion functions—such as
CSng—
instead ofVal
, because the data type conversion functions take into account the computer’s regional settings. The thousands separator is the most important of these regional settings. For example, if the value ofexpression
is the string 1,234.987,CSng
converts it to 1234.987, whileVal
incorrectly converts it to 1.Like most of the conversion functions,
CSng
is not actually a function in the Microsoft.VisualBasic namespace. Instead, it is similar to a Visual C++ macro; the compiler translates the function call into inline code.
See Also
Get VB .NET Language in a Nutshell now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.