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)
}