JS小数点怎么取整?

JavaScript06

JS小数点怎么取整?,第1张

1.丢弃小数部分,保留整数部分 eg:parseInt(5/2)

2.向上取整,有小数就整数部分加1 eg:Math.ceil(5/2)

3.四舍五入. eg:Math.round(5/2)

4.向下取整 eg:Math.floor(5/2)

举例:aa=parseInt(5/2)

alert("取整"+aa)//2(丢掉小数部分)

bb=Math.ceil(5/2)alert("ceil"+bb)//3(向上取整)

cc=Math.round(5/2)alert("round"+cc)//3(四舍五入)

dd=Math.floor(5/2)alert("floor"+dd)//2(向下取整)

一、我们首先从经典的“四舍五入”算法讲起

1、四舍五入的情况

2、不四舍五入

第一种,先把小数边整数:

第二种,当作字符串,使用正则匹配:

注意:如果是负数,请先转换为正数再计算,最后转回负数

再分享一个经典的解决四舍五入问题后js保留两位小数的方法:

//四舍五入保留2位小数(若第二位小数为0,则保留一位小数)

//加法

Number.prototype.add = function (arg) {

    var r1 = 0, r2 = 0, m

    //获取小数的位数并取最大值

    try { r1 = this.toString().split(".")[1].length } catch (e) { }

    try { r2 = arg.toString().split(".")[1].length } catch (e) { }

    m = Math.pow(10, Math.max(r1, r2))

    return (this * m + arg * m) / m

}

//减法

Number.prototype.sub = function (arg) {

    return this.add(-arg)

}

//乘法

Number.prototype.mul = function (arg) {

    var m = 0, s1 = this.toString(), s2 = arg.toString()

    //小数位数相加

    try { m += s1.split(".")[1].length } catch (e) { }

    try { m += s2.split(".")[1].length } catch (e) { }

    return Number(s1.replace(".", "")) * Number(s2.replace(".", "")) / Math.pow(10, m)

}

//除法

Number.prototype.div = function (arg) {

    var t1 = 0, t2 = 0, r1, r2

    try { t1 = this.toString().split(".")[1].length } catch (e) { }

    try { t2 = arg.toString().split(".")[1].length } catch (e) { }

    //将小数点去掉转换为整数

    r1 = Number(this.toString().replace(".", ""))

    r2 = Number(arg.toString().replace(".", ""))

    return (r1 / r2) * Math.pow(10, t2 - t1)

}