Skip to main content

Coldfusion Rounding Functions

Here is some code to show the differences between the various rounding and related function in coldfusion.  The results below are from Coldfusion 10.  I made use of the Rounding Wikipedia article to help explain, in more technical terms, the differences between the functions.






In the results below you can see that we are testing a range of numbers from -2 to 2.  I am calling each function with each of the set of numbers.  For NumberFormat I am using the mask '0' to get the affect of rounding to the decimal place.


Number Round Int Ceiling Fix NumberFormat
-2 -2 -2 -2 -2 -2
-1.9 -2 -2 -1 -1 -2
-1.8 -2 -2 -1 -1 -2
-1.7 -2 -2 -1 -1 -2
-1.6 -2 -2 -1 -1 -2
-1.5 -1 -2 -1 -1 -2
-1.4 -1 -2 -1 -1 -1
-1.3 -1 -2 -1 -1 -1
-1.2 -1 -2 -1 -1 -1
-1.1 -1 -2 -1 -1 -1
-1 -1 -1 -1 -1 -1
-0.9 -1 -1 0 0 -1
-0.8 -1 -1 0 0 -1
-0.7 -1 -1 0 0 -1
-0.6 -1 -1 0 0 -1
-0.5 0 -1 0 0 -1
-0.4 0 -1 0 0 -0
-0.3 0 -1 0 0 -0
-0.2 0 -1 0 0 -0
-0.1 0 -1 0 0 -0
0 0 0 0 0 0
0.1 0 0 1 0 0
0.2 0 0 1 0 0
0.3 0 0 1 0 0
0.4 0 0 1 0 0
0.5 1 0 1 0 1
0.6 1 0 1 0 1
0.7 1 0 1 0 1
0.8 1 0 1 0 1
0.9 1 0 1 0 1
1 1 1 1 1 1
1.1 1 1 2 1 1
1.2 1 1 2 1 1
1.3 1 1 2 1 1
1.4 1 1 2 1 1
1.5 2 1 2 1 2
1.6 2 1 2 1 2
1.7 2 1 2 1 2
1.8 2 1 2 1 2
1.9 2 1 2 1 2
2 2 2 2 2 2

Round

The Round function seems to work as expected, except possibly for the -0.5 and -1.5 values.  These are rounded to 0 and -1 respectively.  The Round function appears to be using the Round Half Up rounding rule.  Up always being in the positive direction.

Int

Int always rounds down to the nearest integer.  This is sometimes known as rounding towards minus infinity.  In other languages this is sometimes called the floor function.  Coldfusion has a Ceiling function, but no floor function.

Ceiling

Ceiling always rounds up to the nearest integer.  This is sometimes known as rounding towards plus infinity.

Fix

Fix drops the numbers after the decimal place.  This gives the same result as rounding towards zero.

NumberFormat

NumberFormat isn't really a rounding function, but it does appear to follow some set of rounding rules when used in the way that I have shown here.  It appears to be producing the same results as rounding half away from zero.  I think what may actually be happening is that it is ignoring the sign and using the same method that the round function uses.

I hope this is helpful information for someone out there.  The Coldfusion documentation was not always clear about what results you should expect when running these functions, so it is nice to have a reference like this.

I have signed up to be able to edit the documentation so I may make some changes there as well.


Comments

Popular posts from this blog

Getting Hidden App Data From Your Google Drive

Some Android applications use space on your Google Drive to store data.  You can't see this data by browsing drive the normal way.  You can get access to it if you get the access token from the app and do a few other things.

I use an app to keep some notes and other things.  They require getting the paid version of the app to backup your data.  I wanted to see if I could get it myself without paying for the app.  I found out how to do this from this Stackoverflow post http://stackoverflow.com/questions/22832104/see-hidden-app-data-in-google-drive.  The example there uses php. Since I have been learning Python recently, I decided to see if I could do the same thing with Python.

 There is a pretty good explanation of why you need to go through all the steps you need to go through to get your data in the accepted answer for that post, so I won't go into too much detail about that here.


Using IR codes from Broadlink backup file

This is a continuation of yesterdays post about the Broadlink RM2 wifi remote.  I was able to test out using the codes to control my remote today.  They are stored in JSON format in the broadlink backup file.  The backup file is a zip file.  After you extract it there is a folder named SharedData.  There are several files in the folder.  The one that seems to have all the codes is named jsonIrCode.  The data looks like an array of objects, each with a code and some other information.


Setting Up an Angular 5 site on Github Pages

Getting Started

This article will go over all the steps to setup an Angular site on GitHub pages.  The site will use Angular's AOT compiling and be served from the docs folder of the repository.

To start with you can follow the guide here to setup a new Angular project. Then you will need to setup a repository on Github.com.  The name of the repository doesn't matter, this site will use the docs folder, not the specially named repository with USERNAME.github.io as the name.



Project Changes

After that open up the project in your editor and open the .angular.cli.json file.  Change the "outDir" to "docs".  This is where the files will be created when you build the project.  The contents of .angular.cli.json are shown below with all the changes discussed in the article.

Custom Domain

To use a custom domain for your site you need to create a file name CNAME that contains only the domain name.  The GitHub help page explains how to setup DNS and everything else you …