JavaScript简单计算结果无法取整,求解决方案(已尝试Math.round)
解决方法
你的问题出在toFixed(2)会把数值转换成字符串,这时候再用Math.round无法正确处理。应该在计算阶段直接对数值取整,而非先转成带两位小数的字符串。
修改后的代码如下:
function myFunction() { var str = document.getElementById("blog-body").innerHTML; var n = str.match(/(\w+)/g).length; var x = n / 200; // 直接对x取整,得到最接近的整数 var y = Math.round(x); document.getElementById("result").innerHTML = y + ' Min |'; }
如果确实需要先保留两位小数再取整(通常直接对x取整即可,两者结果一致),可以把toFixed(2)的结果转回数值后再处理:
var y = Math.round(parseFloat(x.toFixed(2)));
优先推荐直接对原始计算值x使用Math.round,避免多余的类型转换。
内容的提问来源于stack exchange,提问作者DosedPsychedelia
相关产品推荐
相关产品推荐

