我希望从以下示例中的数字中获得比例和精度。
var x = 1234.567;
我没有看到内置任何.scale
或.precision
函数,我不确定最好的方法是什么。
答案 0 :(得分:6)
var x = 1234.567;
var parts = x.toString().split('.');
parts[0].length; // output: 4 for 1234
parts[1].length; // output: 3 for 567
Javascript具有 toPrecision() 方法,可以为指定长度的数字提供。
例如:
var x = 1234.567;
x.toPrecision(4); // output: 1234
x.toPrecision(5); // output: 1234.5
x.toPrecision(7); // output: 1234.56
但是
x.toPrecision(5); // output: 1235
x.toPrecision(3); // output: 1.23e+3
等等。
有没有办法检查字符串是否包含.
?
var x = 1234.567
x.toString().indexOf('.'); // output: 4
.indexof()
返回目标的第一个索引-1
。
答案 1 :(得分:5)
另一种高级解决方案(如果我正确理解 scale 和 precision 的含义):
function getScaleAndPrecision(x) {
x = parseFloat(x) + "";
var scale = x.indexOf(".");
if (scale == -1) return null;
return {
scale : scale,
precision : x.length - scale - 1
};
}
var res = getScaleAndPrecision(1234.567);
res.scale; // for scale
res.precision; // for precision
如果number不是float函数,则返回null
。
答案 2 :(得分:3)
您可以使用:
UseParNewGC