我收到错误无法读取tostring()。以下是我的代码请帮忙
function convertRounding(nValue) {
var sArr = nValue.toString("0.00000").split('.');
**var sVal = sArr[1].toString();**
if (sVal == "00000" || sVal.substring(1) == "0000" || sVal.substring(2) == "000")
return parseFloat(nValue).toFixed(2);
else if (sVal.substring(3) == "00")
return parseFloat(nValue).toFixed(3);
else if (sVal.substring(4) == "0")
return parseFloat(nValue).toFixed(4);
else
return parseFloat(nValue).toFixed(5);
}
答案 0 :(得分:0)
我认为基数nValue.toString存在问题(" 0.00000" ) 只需尝试 nValue.toString()这个
答案 1 :(得分:0)
您传入的值(nValue)不包含点,因此当您尝试拆分时会失败。
确保您的输入确实可以先拆分。
function convertRounding(nValue) {
var sArr = nValue.toString().split('.');
var sVal = sArr[1].toString();
if (sVal == "00000" || sVal.substring(1) == "0000" || sVal.substring(2) == "000")
return parseFloat(nValue).toFixed(2);
else if (sVal.substring(3) == "00")
return parseFloat(nValue).toFixed(3);
else if (sVal.substring(4) == "0")
return parseFloat(nValue).toFixed(4);
else
return parseFloat(nValue).toFixed(5);
}
console.log(convertRounding(100.20));
//console.log(convertRounding(100)); // fails
https://jsfiddle.net/qgafbvot/2/
已更新以使用数字输入。