function to format a fixed digit number

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>
``````
LVL 8
Asked:
Who is Participating?

Commented:
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>
``````
0

Commented:
oops... you don't need the String object creation at line 10.
``````return num.toFixed(2);
``````
0

Author Commented:
thanks
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Already a member? Login.

All Courses

From novice to tech pro — start learning today.