Phi*_*rep 29 javascript jquery mootools numbers decimal-point
有没有比我的例子更好的方法来计算数字上的小数位数?
var nbr = 37.435.45;
var decimals = (nbr!=Math.floor(nbr))?(nbr.toString()).split('.')[1].length:0;
Run Code Online (Sandbox Code Playgroud)
更好的是,我的意思是更快地执行和/或使用本机JavaScript函数,即.像nbr.getDecimals()这样的东西.
提前致谢!
编辑:
修改series0ne答案后,我能够管理的最快方法是:
var val = 37.435345;
var countDecimals = function(value) {
if (Math.floor(value) !== value)
return value.toString().split(".")[1].length || 0;
return 0;
}
countDecimals(val);
Run Code Online (Sandbox Code Playgroud)
ser*_*0ne 68
Number.prototype.countDecimals = function () {
if(Math.floor(this.valueOf()) === this.valueOf()) return 0;
return this.toString().split(".")[1].length || 0;
}
Run Code Online (Sandbox Code Playgroud)
当绑定到原型时,这允许您countDecimals();
直接从数字变量获取十进制count().
例如
var x = 23.453453453;
x.countDecimals(); // 9
Run Code Online (Sandbox Code Playgroud)
它的工作原理是将数字转换为字符串,然后将其拆分为.并返回数组的最后一部分,如果数组的最后一部分未定义则返回0(如果没有小数点则会出现).
如果您不想将其绑定到原型,您可以使用:
var countDecimals = function (value) {
if(Math.floor(value) === value) return 0;
return value.toString().split(".")[1].length || 0;
}
Run Code Online (Sandbox Code Playgroud)
Pet*_*e D 22
添加到series0ne答案如果你想让代码不为整数引发错误并在没有小数时得到0的结果使用这个:
var countDecimals = function (value) {
if ((value % 1) != 0)
return value.toString().split(".")[1].length;
return 0;
};
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
60410 次 |
最近记录: |