当我尝试使用JavaScript转换分数时,我遇到了一个问题。 我需要将百分比值作为百分比值。 a = 0.0175 它应该显示为1.75%。我试图乘以100.但我得到了一些额外的分数加到右边 - 1.7500000000000002。我只需要1.75,而不是再添加到最后的零。JavaScript分数百分比
在此先感谢。
当我尝试使用JavaScript转换分数时,我遇到了一个问题。 我需要将百分比值作为百分比值。 a = 0.0175 它应该显示为1.75%。我试图乘以100.但我得到了一些额外的分数加到右边 - 1.7500000000000002。我只需要1.75,而不是再添加到最后的零。JavaScript分数百分比
在此先感谢。
试试这个
var a = 0.0175
var num = a * 100;
var n = num.toFixed(2)
是否可以不指定长度?有时如果值为0.03425,则应该显示为3.425。我不想限制分数位置的数量,甚至不用零填充它。 – Dig 2014-10-04 00:56:46
如果你不想要小数位数然后直接倍数两位小数,但一定要将它们转换成小数,这是因为JavaScript把每一个字符串都对待一个字符串 – 2014-10-04 01:11:27
乘法,圆形和除法:
// rounding to set precision or default precision = 3
function roundToPrecision (value, precision) {
precision = (typeof precision !== 'undefined') ? precision : 3;
var mult = Math.pow(10, precision);
return Math.round(mult * value)/mult;
}
用法:
var zzz = roundToPrecision(123.1231232546); // 123.123
var aaa = roundToPrecision(123.1231232546, 1); // 123.1
这么简单的结果 – njzk2 2014-10-04 00:32:16
需要一个通用舍入函数 – 2014-10-04 00:34:09
除'toFixed()'返回字符串 – 2014-10-04 00:39:59
试试这个:
function formatNum(n) {
return Math.round(a * 1e4)/1e2;
}
var a = 0.0175;
var n = formatNum(a); // 1.75
var b = 0.21;
var m = formatNum(b); // 21
它简单地乘以100 * 100,将结果舍入并再次除以100.结果因此仍然是一个数字而不是字符串,这与toFixed
-approach一样。
您还可以添加解释吗? – Robert 2015-06-04 11:07:52
使用'toFixed()'指定小数位数。 – Barmar 2014-10-04 00:16:37