Javascript - 格式编号始终显示原始小数位

时间:2012-07-24 16:58:33

标签: javascript numbers format

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

value          display
2.31             2
1.0              1
2.3500           4

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

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

4 个答案:

答案 0 :(得分:4)

那是不可能的。 JavaScript中的数字3.53.50之间没有区别,或者实际上是任何其他常见的编程语言。

如果你的意思是他们是字符串(value = '2.3500'而不是value = 2.3500),那么你可以使用indexOf

var decimalPlaces = value.length - value.indexOf('.') - 1;

答案 1 :(得分:1)

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

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

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

{ value = "1.2345", decimal = 4} 

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

答案 2 :(得分: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;
    }
 }
}

答案 3 :(得分:0)

您可以使用此功能:

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

    if(decimalpoint == -1)
    {
       return 0;
    }
    else
    {
        return numberastring.length - decimalpoint - 1;
    }
}