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: 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
In javascript, Number.prototype.toFixed has problems rounding.
Here’s the fix and some test cases.
Number.prototype.toFixed = (function () {
var oldToFixed = Number.prototype.toFixed;
return function (precision) {
var value = this.toString(), power = Math.pow(10, precision || 0);
return oldToFixed.call((Math.round(value * power) / power), precision);
};
}()); |
Number.prototype.toFixed = (function () {
var oldToFixed = Number.prototype.toFixed;
return function (precision) {
var value = this.toString(), power = Math.pow(10, precision || 0);
return oldToFixed.call((Math.round(value * power) / power), precision);
};
}());
Here’s a simple test.
// Programmer: Larry Battle
// Link: http://bateru.com/news/2012/03/code-of-the-day-fix-for-number-prototype-tofixed
(function (root) {
"use strict";
var log = function( str ){
root.document.body.innerHTML += "log: " + str + "<br/>";
},
assert = function (a, b ) {
var message = a + ' !== ' + b;
message += ( a === b ) ? "=> true" : "=> false";
log( message );
};
assert((0.595).toFixed(2), "0.59");
assert((0.9).toFixed(0), "1");
Number.prototype.toFixed = (function () {
var oldToFixed = Number.prototype.toFixed;
return function (precision) {
var value = this.toString(), power = Math.pow(10, precision || 0);
return oldToFixed.call((Math.round(value * power) / power), precision);
};
}
());
log("Applying the toFixed fix.");
assert((0.595).toFixed(2), "0.60");
assert((0.9).toFixed(0), "1");
}(this)); |
// Programmer: Larry Battle
// Link: http://bateru.com/news/2012/03/code-of-the-day-fix-for-number-prototype-tofixed
(function (root) {
"use strict";
var log = function( str ){
root.document.body.innerHTML += "log: " + str + "<br/>";
},
assert = function (a, b ) {
var message = a + ' !== ' + b;
message += ( a === b ) ? "=> true" : "=> false";
log( message );
};
assert((0.595).toFixed(2), "0.59");
assert((0.9).toFixed(0), "1");
Number.prototype.toFixed = (function () {
var oldToFixed = Number.prototype.toFixed;
return function (precision) {
var value = this.toString(), power = Math.pow(10, precision || 0);
return oldToFixed.call((Math.round(value * power) / power), precision);
};
}
());
log("Applying the toFixed fix.");
assert((0.595).toFixed(2), "0.60");
assert((0.9).toFixed(0), "1");
}(this));
Demo: Link
Update!
Improved code here