Number.prototype.countDecimals = function () {
if(Math.floor(this.valueOf()) === this.valueOf()) return 0;
return this.toString().split(".")[1].length || 0;
}
当绑定到原型时,这允许您countDecimals();
直接从数字变量中获取十进制计数 ( )。
例如
var x = 23.453453453;
x.countDecimals(); // 9
它通过将数字转换为字符串,在. 并返回数组的最后一部分,如果数组的最后一部分未定义(如果没有小数点,则会发生这种情况),则返回 0。
如果您不想将其绑定到原型,则可以使用:
var countDecimals = function (value) {
if(Math.floor(value) === value) return 0;
return value.toString().split(".")[1].length || 0;
}
布莱克编辑:
我已经修复了该方法,使其也适用于较小的数字,例如0.000000001
Number.prototype.countDecimals = function () {
if (Math.floor(this.valueOf()) === this.valueOf()) return 0;
var str = this.toString();
if (str.indexOf(".") !== -1 && str.indexOf("-") !== -1) {
return str.split("-")[1] || 0;
} else if (str.indexOf(".") !== -1) {
return str.split(".")[1].length || 0;
}
return str.split("-")[1] || 0;
}
var x = 23.453453453;
console.log(x.countDecimals()); // 9
var x = 0.0000000001;
console.log(x.countDecimals()); // 10
var x = 0.000000000000270;
console.log(x.countDecimals()); // 13
var x = 101; // Integer number
console.log(x.countDecimals()); // 0