将小数位数限制为特定情况(不是圆形)

时间:2016-06-22 21:53:25

标签: javascript

我希望将数字限制为2位小数,但仅限于其余为零。我不想围绕数字。

我尝试过使用这个例子 (1.0000).toFixed(2) 结果将是1.00,但如果我有一个像(1.0030).toFixed(2)的数字,结果应该是1.003。

我尝试使用parseFloat和toFixed的组合,但没有得到我想要的结果。

javascript中是否有任何功能可以实现我想要实现的功能。

1 个答案:

答案 0 :(得分:2)

所以你想要至少两位小数?这是一种方式:

function toMinTwoDecimals(numString) {
    var num = parseFloat(numString);
    return num == num.toFixed(2) ? num.toFixed(2) : num.toString();
}

示例:

toMinTwoDecimals("1.0030"); // returns "1.003"
toMinTwoDecimals("1.0000"); // returns "1.00"
toMinTwoDecimals("1"); // returns "1.00"
toMinTwoDecimals("-5.24342234"); // returns "-5.24342234"

如果您希望保留少于两位小数的数字,请改为使用:

function toMinTwoDecimals(numString) {
    var num = parseFloat(numString);

    // Trim extra zeros for numbers with three or more 
    // significant decimals (e.g. "1.0030" => "1.003")
    if (num != num.toFixed(2)) {
        return num.toString();
    }

    // Leave numbers with zero or one decimal untouched
    // (e.g. "5", "1.3")
    if (numString === num.toFixed(0) || numString === num.toFixed(1)) {
        return numString;
    }

    // Limit to two decimals for numbers with extra zeros
    // (e.g. "1.0000" => "1.00", "1.1000000" => "1.10")
    return num.toFixed(2);
}