Warning: WP_Syntax::substituteToken(): Argument #1 ($match) must be passed by reference, value given in
/home/bateeqjg/public_html/news/wp-content/plugins/wp-syntax/wp-syntax.php on line
380
Warning: Undefined array key "layout" in
/home/bateeqjg/public_html/news/wp-content/plugins/wp-about-author/wp-about-author.php on line
94
Number.prototype.toFixed was giving me too many problems, so I just rewrote it.
There’s the source.
/**
@author Larry Battle <a alt="contact me" href="bateru.com/news/contact">Contact Me</a>
@date Mar 30, 2012
@purpose Provide the fix for Number.prototype.toFixed() function.
@info source at http://bateru.com/news/2012/03/reimplementation-of-number-prototype-tofixed
*/
Number.prototype.toFixed_fix = function (precision) {
var num = this.toString(), zeros = '00000000000000000000', newNum, decLength, factor;
if (0 > precision || precision > 20) {
throw new RangeError("toFixed() digits argument must be between 0 and 20");
}
if (Math.abs(num) === Infinity || Math.abs(num) >= 1e21) {
return num;
}
precision = parseInt(precision, 10) || 0;
newNum = num = isNaN(parseInt(num, 10)) ? '0' : num;
if (/\./.test(num)) {
decLength = num.split('.')[1].length;
if (decLength < precision) {
newNum += zeros.substring(0, precision - decLength);
} else {
factor = Math.pow(10, precision);
newNum = Math.round(num * factor) / factor;
}
} else {
if (precision) {
newNum += '.' + zeros.substring(0, precision);
}
}
return newNum;
}; |
/**
@author Larry Battle <a alt="contact me" href="bateru.com/news/contact">Contact Me</a>
@date Mar 30, 2012
@purpose Provide the fix for Number.prototype.toFixed() function.
@info source at http://bateru.com/news/2012/03/reimplementation-of-number-prototype-tofixed
*/
Number.prototype.toFixed_fix = function (precision) {
var num = this.toString(), zeros = '00000000000000000000', newNum, decLength, factor;
if (0 > precision || precision > 20) {
throw new RangeError("toFixed() digits argument must be between 0 and 20");
}
if (Math.abs(num) === Infinity || Math.abs(num) >= 1e21) {
return num;
}
precision = parseInt(precision, 10) || 0;
newNum = num = isNaN(parseInt(num, 10)) ? '0' : num;
if (/\./.test(num)) {
decLength = num.split('.')[1].length;
if (decLength < precision) {
newNum += zeros.substring(0, precision - decLength);
} else {
factor = Math.pow(10, precision);
newNum = Math.round(num * factor) / factor;
}
} else {
if (precision) {
newNum += '.' + zeros.substring(0, precision);
}
}
return newNum;
};
Test cases here

Want to learn more about Javascript?
Checkout this ‘Professional JavaScript for Web Developers’.