我需要一个 js 函数来显示数字中的原始小数位数。例如:
value display
2.31 2
1.0 1
2.3500 4
问题是我不知道如何获得小数位数。我有那个代码: value=2.3500; 返回 CountofDecimals(值); // 必须是显示 4:
有什么帮助???谢谢:P
我需要一个 js 函数来显示数字中的原始小数位数。例如:
value display
2.31 2
1.0 1
2.3500 4
问题是我不知道如何获得小数位数。我有那个代码: value=2.3500; 返回 CountofDecimals(值); // 必须是显示 4:
有什么帮助???谢谢:P
那是不可能的。3.5
数字与3.50
JavaScript 或任何其他常见编程语言之间没有区别。
如果您实际上是说它们是字符串(value = '2.3500'
而不是value = 2.3500
),那么您可以使用indexOf
:
var decimalPlaces = value.length - value.indexOf('.') - 1;
警告:我讨厌这个答案,我并不真正提倡它
不要将其存储为数字,将其存储为字符串。这会很快导致“字符串类型”代码,因此不可取。这是一种解决方法,因为 JavaScript 使用浮点数作为数字类型。
或者将其存储为 Object 并通过函数调用解析出格式:
{ value = "1.2345", decimal = 4}
并使用它来创建正确的数字格式。如果我有要求,这可能是我会使用的 hack。或者,我会让我的服务器返回格式化的字符串,因为您可以轻松地将其从服务器端拉出来。
如果可以将这些数字作为字符串,那绝对是可能的……而且实际上很简单。
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;
}
}
}
你可以使用这个功能:
function decimalplaces(number)
{
numberastring = number.toString(10);
decimalpoint = numberastring.indexOf(".");
if(decimalpoint == -1)
{
return 0;
}
else
{
return numberastring.length - decimalpoint - 1;
}
}