在javascript中删除两个小数点后的数字而不是圆形数字?

时间:2012-04-19 13:50:16

标签: javascript numbers rounding

我有这个:

i=4.568;
document.write(i.toFixed(2));

输出:

4.57

但我不想将最后一个数字舍入为7,我该怎么办?

3 个答案:

答案 0 :(得分:9)

使用简单的数学代替;

document.write(Math.floor(i * 100) / 100);

(jsFiddle)

您可以将其粘贴在自己的功能中以便重复使用;

function myToFixed(i, digits) {
    var pow = Math.pow(10, digits);

    return Math.floor(i * pow) / pow;
}

document.write(myToFixed(i, 2));

(jsFiddle)

答案 1 :(得分:7)

切断较长的字符串:

i.toFixed(3).replace(/\.(\d\d)\d?$/, '.$1')

答案 2 :(得分:0)

稍微复杂的方法:

var i=4.568,
    iToString = ​i + '';
    i = parseFloat(iToString.match(/\d+\.\d{2}/));
console.log(i);

这有效地获取变量i并将其转换为字符串,然后使用正则表达式匹配小数点前的数字和小数点后面的数字,使用parseFloat()然后转换它回到了一个数字。

参考文献: