我需要一个js函数来显示数字中的原始小数位数。例如:
value display
2.31 2
1.0 1
2.3500 4
问题是我不知道如何得到小数的计数。 我有那个代码: 值= 2.3500; return CountofDecimals(value); //必须显示4:
有什么帮助???谢谢:P
答案 0 :(得分:4)
那是不可能的。 JavaScript中的数字3.5
和3.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;
}
}