Numbers
Integers and floats to rule the world!
There are two basic kinds of numbers in CFML: integers (whole numbers) and floats (have a decimal point). Internally, each CFML engine treats them uniquely and backs up each numerical value as a Java class: java.lang.Double
or java.lang.Integer
.
Integer
32
-2,147,483,648 (-231)
2,147,483,647 (231 - 1)
Double
64
53
11
15-16
Lucee stores all numerical values as Doubles
Adobe stores integers as Integer and floats as Doubles
Tip: If you are dealing with currency or tracking precision, please read about precisionEvaluate()
to represent big numbers and precision results: https://cfdocs.org/precisionevaluate
Also, note that CFML will do the auto-casting for you when converting between integers and doubles.
Numeric Type
Once we start looking at functions/closures and lambdas, you will see that you can also type the incoming arguments and results of functions. You also won't need to type it with integer or float, just as numeric:
Operators & Functions
CFML offers tons of mathematical operators and functions: https://cfdocs.org/math%2Dfunctions
abs
aCos
arrayAvg
arraySum
aSin
atn
bitAnd
bitMaskClear
bitMaskRead
bitMaskSet
bitNot
bitOr
bitSHLN
bitSHRN
bitXor
ceiling
cos
decrementValue
expt
fix
floor
formatBaseN
incrementValue
inputBaseN
int
log
log10
max
min
pi
precisionEvaluate
rand
randomize
randRange
round
sgn
sin
sqr
tan
Casting/Parsing
CFML also has a toNumeric()
function that you can use to cast a value to a number using different radixes.
The parseNumber()
is also used to convert a string number into a numeral system (https://cfdocs.org/parsenumber)
In a positional numeral system, the radix or base is the number of unique digits, including the digit zero, used to represent numbers. For example, for the decimal system (the most common system in use today) the radix is ten, because it uses the ten digits from 0 through 9.
Is it a number?
CFML provides the isNumeric()
function to determine if the passed value can be converted to a numeric value.
Repeating Instructions
Number variables can be used to repeat instructions. Like in many other languages, CFML supports the for
, while
and loop
constructs:
Please note that the syntax varies from tag to script, so refer to the docs for subtle differences. Please also note that you can iterate over structures, arrays, queries, and objects in CFML; we will see this in later sections.
See https://cfdocs.org/cfloop, https://cfdocs.org/cfwhile for more information
Last updated