Solved

function to format a fixed digit number

Posted on 2008-06-13
3
240 Views
Last Modified: 2010-04-21
Hello Folks,
I am using attached function to format some fixed digit number but it is giving me an error.
Please can you see if this is not correct?
thanks
s
<script>
function twoDecimal(num,round) {
  if (round) return num.toFixed(2);
  var stringNum = String(num);
  if (stringNum.indexOf('.')==-1) return stringNum+'.00';
  var newNum = stringNum.split('.');
  if (newNum.len==2) {
    newNum[1]=(newNum[1].length>2)?newNum[1].subString(0,2):newNum[1];
  }
  if (newNum[1].length==1) newnum[1]+="0"
  return newNum[0]+'.'+newNum[1]
}
alert(twoDecimal(133.5999,1));
alert(twoDecimal(133.5999));
alert(twoDecimal(133));
alert(twoDecimal(133.5));
 
</script>

Open in new window

0
Comment
Question by:newbie27
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
3 Comments
 
LVL 2

Accepted Solution

by:
Airyck666 earned 500 total points
ID: 21780787
Since the only time you can't use the .toFixed to solve this is if !round and there's more than 2 decimal places.  So try somethig this code.
<script>
function twoDecimal(num,round) {
    
    var stringNum = String(num);
    var newNum = stringNum.split('.');
    if  (newNum.length > 1  && newNum[1].length > 1 && !round) {
        newNum[1]=(newNum[1].length > 2) ? newNum[1].substring(0,2) : newNum[1];
        return newNum[0]+'.'+newNum[1];
    } else {
        return String(num.toFixed(2));
    }
}
alert(twoDecimal(133.5999,1));
alert(twoDecimal(133.5999));
alert(twoDecimal(133));
alert(twoDecimal(133.5));
 
</script>

Open in new window

0
 
LVL 2

Assisted Solution

by:Airyck666
Airyck666 earned 500 total points
ID: 21780800
oops... you don't need the String object creation at line 10.
return num.toFixed(2);

Open in new window

0
 
LVL 8

Author Closing Comment

by:newbie27
ID: 31466970
thanks
0

Featured Post

Free Tool: IP Lookup

Get more info about an IP address or domain name, such as organization, abuse contacts and geolocation.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Article by: DanRollins
This article describes a JavaScript program that creates a maze made of hexagonal cells.  In Part 2 (http://www.experts-exchange.com/Programming/Languages/Scripting/JavaScript/A_7850-Hex-Maze-Part-2.html), we'll extend the program by adding a depth-…
The task A number given should be formatted for easy reading by separating digits into triads. Format must be made inline via JavaScript, i.e., frameworks / functions are not welcome. So let’s take a number like this “12345678.91¿ and format i…
The viewer will learn the basics of jQuery, including how to invoke it on a web page. Reference your jQuery libraries: (CODE) Include your new external js/jQuery file: (CODE) Write your first lines of code to setup your site for jQuery.: (CODE)
The viewer will learn the basics of jQuery including how to code hide show and toggles. Reference your jQuery libraries: (CODE) Include your new external js/jQuery file: (CODE) Write your first lines of code to setup your site for jQuery…

695 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question