Ben Nadel
On User Experience (UX) Design, JavaScript, ColdFusion, Node.js, Life, and Love.
I am the chief technical officer at InVision App, Inc - a prototyping and collaboration platform for designers, built by designers. I also rock out in JavaScript and ColdFusion 24x7.
Meanwhile on Twitter
Loading latest tweet...
Ben Nadel at cf.Objective() 2009 (Minneapolis, MN) with: Ted Steinman and Tim Meyer

Ask Ben: Moving Decimal Places And Formatting Numbers

By Ben Nadel on

Hi Ben, I have been trying to use DecimalFormat and NumberFormat to get some integers coming out of a database query to display as decimals numbers. For Example I want 415 to display as 4.15. I also need 6 to display as .60 How might I accomplish this. I really love your writings by the way.

To do this, all you need to do is move over the decimal place and then format the number. Based on those two numbers, it looks like the number of decimal places is not generic. For 415, you want to move it over twice. For 6, you only move it over once. You'll have to figure out that part of the logic, but once you do, the formatting is quite easy:

  • <!--- Set both values so that we can mimic database values. --->
  • <cfset intValueA = 415 />
  • <cfset intValueB = 6 />
  •  
  •  
  • <!--- Output first number in decimal format. --->
  • #DecimalFormat( intValueA / 100 )#<br />
  •  
  •  
  • <!---
  • The second number is slightly more tricky since you did not
  • want a leading zero. All of the number formatting options put
  • in a leading zero. Therefore, we have to manually remove that
  • with some list functionality.
  • --->
  • .#ListLast( DecimalFormat( intValueB / 10 ), "." )#

Once of the beauties of a base-10 number system such as ours is that all you need to do to move decimal places is divide by a power of 10. Each power of 10 moves the decimal place over once. Running the above code we get the following output:

4.15
.60

Hope that helps.



Reader Comments

@Steven,

Thanks for the tip; to be honest, my knowledge about internationalization is pretty poor :(

Reply to this Comment

Post A Comment

You — Get Out Of My Dreams, Get Into My Comments
Live in the Now
Oops!
Comment Etiquette: Please do not post spam. Please keep the comments on-topic. Please do not post unrelated questions or large chunks of code. And, above all, please be nice to each other - we're trying to have a good conversation here.