如何使用Javascript计算实数的小数位数(非数字)?使用Javascript获取小数位数
function countDecimals(number) {
}
例如,给定245.395,它应该返回3
如何使用Javascript计算实数的小数位数(非数字)?使用Javascript获取小数位数
function countDecimals(number) {
}
例如,给定245.395,它应该返回3
这样的:“”
var val = 37.435345;
var countDecimals = function(value) {
if (Math.floor(value) !== value)
return value.toString().split(".")[1].length || 0;
return 0;
}
countDecimals(val);
的主要思想是将数字转换为字符串,并得到的指数
var x = 13.251256;
var text = x.toString();
var index = text.indexOf(".");
alert(text.length - index - 1);
您可以使用一个简单的函数,它在小数点位置分开(如果有的话)并在此之后对数字进行计数。由于小数位可以用'。'表示或“”(或者一些其它字符),您可以测试这一点,使用适当的一个:
function countPlaces(num) {
var sep = String(23.32).match(/\D/)[0];
var b = String(num).split(sep);
return b[1]? b[1].length : 0;
}
console.log(countPlaces(2.343)); // 3
console.log(countPlaces(2.3)); // 1
console.log(countPlaces(343.0)); // 0
console.log(countPlaces(343)); // 0
这里是一个不依赖于任何转换为字符串的方法:
function getDecimalPlaces(x,watchdog)
{
x = Math.abs(x);
watchdog = watchdog || 20;
var i = 0;
while (x % 1 > 0 && i < watchdog)
{
i++;
x = x*10;
}
return i;
}
请注意,计数值不会超出watchdog
的值(默认值为20)。
245.0应该返回什么? – RobG 2014-11-22 21:32:25