我在控制台中收到错误无法在javascript

时间:2015-04-22 11:02:13

标签: javascript

我收到错误无法读取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);
    }

2 个答案:

答案 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/

已更新以使用数字输入。