LogoLogo
Printed BookDownload BookCFML SupportCFML Videos
  • Introduction
  • Intro
    • Welcome
      • Author
      • About This Book
    • What is ColdFusion (CFML)
    • CommandBox CLI
    • Instructions & Interpreters
  • CFML Language
    • Syntax
    • Comments
    • Variables
    • Variable Scopes
    • Operators
    • Null & Nothingness
    • Strings
    • JSON
    • Numbers
    • Arrays
    • Structures
    • Database Queries
    • Conditionals
    • Exception Management
    • Components
      • Properties
      • Functions
      • Static Constructs
      • Final Constructs
      • Abstract Constructs
      • Interfaces
    • Closures
    • Code Locking
    • Threading
    • Includes
    • Java Integration
  • Beyond The 100
    • Beyond The 100
    • Application.cfc
    • File Handling
    • Image Manipulation
    • HTTP/S Calls
    • Sending Emails
    • Asynchronous Programming
  • Extra Credit
    • MVC
    • Dependency Injection
    • Security Guide
Powered by GitBook

Support Us

  • Become a Patreon
  • Contribute
  • CFCasts

Social Media

  • LinkedIn
  • Facebook
  • Twitter

Ortus Solutions, Corp

On this page
  • Numeric Type
  • Operators & Functions
  • Casting/Parsing
  • Is it a number?
  • Repeating Instructions

Was this helpful?

Edit on GitHub
  1. CFML Language

Numbers

Integers and floats to rule the world!

PreviousJSONNextArrays

Last updated 2 years ago

Was this helpful?

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.

Type
Size (bits)
Min Value
Max Value

Integer

32

-2,147,483,648 (-231)

2,147,483,647 (231 - 1)

Type
Size (bits)
Significant Bits
Exponent Bits
Decimal Digits

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:

a = 1;
b = 50.1;
writeOutput( a * b );

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:

numeric function add( numeric a, numeric b ){
    return a + b;
}

Operators & Functions

CFML offers tons of mathematical and functions:

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

toNumeric( "29.5" )
toNumeric( "FF0011", "hex" )
toNumeric( "1010", "bin" )

Is it a number?

CFML provides the isNumeric() function to determine if the passed value can be converted to a numeric value.

isNumeric( 23 ) // yes
isNumeric( "twenty" ) // no
isNumeric( 5e2 ) // yes

Repeating Instructions

Number variables can be used to repeat instructions. Like in many other languages, CFML supports the for, while and loop constructs:

for( var i = 0; i <= 10; i++ ){
    writeOutput( "Showing day " & i );
}

i =1;
while( i <= 10 ){
    writeOutput( "Showing day " & i++ );
}

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.

CFML also has a toNumeric() function that you can use to cast a value to a number using different .

The parseNumber() is also used to convert a string number into a numeral system ()

In a , the radix or base is the number of unique , including the digit zero, used to represent numbers. For example, for the (the most common system in use today) the radix is ten, because it uses the ten digits from 0 through 9.

See , for more information

radixes
https://cfdocs.org/parsenumber
positional numeral system
digits
decimal system
https://cfdocs.org/cfloop
https://cfdocs.org/cfwhile
https://cfdocs.org/precisionevaluate
https://cfdocs.org/math%2Dfunctions
operators