1

我需要一个 js 函数来显示数字中的原始小数位数。例如:

value          display
2.31             2
1.0              1
2.3500           4

问题是我不知道如何获得小数位数。我有那个代码: value=2.3500; 返回 CountofDecimals(值); // 必须是显示 4:

有什么帮助???谢谢:P

4

4 回答 4

4

那是不可能的。3.5数字与3.50JavaScript 或任何其他常见编程语言之间没有区别。

如果您实际上是说它们是字符串(value = '2.3500'而不是value = 2.3500),那么您可以使用indexOf

var decimalPlaces = value.length - value.indexOf('.') - 1;
于 2012-07-24T17:05:44.747 回答
1

警告:我讨厌这个答案,我并不真正提倡它

不要将其存储为数字,将其存储为字符串。这会很快导致“字符串类型”代码,因此不可取。这是一种解决方法,因为 JavaScript 使用浮点数作为数字类型。

或者将其存储为 Object 并通过函数调用解析出格式:

{ value = "1.2345", decimal = 4} 

并使用它来创建正确的数字格式。如果我有要求,这可能是我会使用的 hack。或者,我会让我的服务器返回格式化的字符串,因为您可以轻松地将其从服务器端拉出来。

于 2012-07-24T17:12:38.533 回答
1

如果可以将这些数字作为字符串,那绝对是可能的……而且实际上很简单。

function countDecimals(string){
   var delimiters = [",","."];
   for(var i = 0; i<delimiters.length; i++){

        if(string.indexOf(delimiters[i])==-1) continue;
        else{
        return string.substring(string.indexOf(delimiters[i])+1).length;
    }
 }
}
于 2012-07-24T17:16:24.347 回答
0

你可以使用这个功能:

function decimalplaces(number)
{
    numberastring = number.toString(10);
    decimalpoint = numberastring.indexOf(".");

    if(decimalpoint == -1)
    {
       return 0;
    }
    else
    {
        return numberastring.length - decimalpoint - 1;
    }
}
于 2012-07-24T17:57:12.500 回答