User Guide

Table Of Contents
Data type conversion 59
Data type conversion
ColdFusion automatically converts between data types to satisfy the requirements of an
expressions operations, including a functions argument requirements. As a result, you generally
dont need to be concerned about compatibility between data types and the conversions from one
data type to another. However, understanding how ColdFusion evaluates data values and converts
data between types can help you prevent errors and create code more effectively.
Operation-driven evaluation
Conventional programming languages enforce strict rules about mixing objects of different types
in expressions. For example, in a language such as C++ or Basic, the expression
("8" * 10)
produces an error because the multiplication operator requires two numerical operands and "8" is
a string. When you program in such languages, you must convert between data types to ensure
error-free program execution. For example, the previous expression might have to be written as
(ToNumber("8") * 10).
In ColdFusion, however, the expression
("8" * 10) evaluates to the number 80 without
generating an error. When ColdFusion processes the multiplication operator, it automatically
attempts to convert its operands to numbers. Since "8" can be successfully converted to the
number 8, the expression evaluates to 80.
ColdFusion processes expressions and functions in the following sequence:
1.
For each operator in an expression, it determines the required operands. (For example, the
multiplication operator requires numeric operands and the CONTAINS operator requires
string operands.)
For functions, it determines the type required for each function argument. (For example, the
Min function requires two numbers as arguments and the Len function requires a string.)
2.
It evaluates all operands or function arguments.
3.
It converts all operands or arguments whose types differ from the required type. If a conversion
fails, it reports an error.
Conversion between types
Although the expression evaluation mechanism in ColdFusion is very powerful, it cannot
automatically convert all data. For example, the expression
"eight" * 10 produces an error
because ColdFusion cannot convert the string "eight" to the number 8. Therefore, you must
understand the rules for conversion between data types.
The following table explains how conversions are performed. The first column shows values to
convert. The remaining columns show the result of conversion to the listed data type.
Value As Boolean As number As date-time As string
"Yes" True 1 Error "Yes"
"No" False 0 Error "No"
True True 1 Error "Yes"