1、四舍五入的情况
2、不四舍五入
第一种,先把小数边整数:
第二种,当作字符串,使用正则匹配:
注意:如果是负数,请先转换为正数再计算,最后转回负数
再分享一个经典的解决四舍五入问题后js保留两位小数的方法:
//四舍五入保留2位小数(若第二位小数为0,则保留一位小数)
function isNumber(val) {
let result = /^[-+]?(([0-9]+)([.]([0-9]+))?|([.]([0-9]+))?)$/.test(val)
return result
}
function numberFixed(val,n=2) {
if(isNumber(val)){
let str = val + ''
if(str.includes('.')){
let arr = str.split('.')
let result = arr[0] + '.' + arr[1].substring(0,n)
return Number(result)
} else{
return Number(val)
}
return Number(str.substring())
}else{
return val
}
}
numberFixed(0.2,6)//0.2
numberFixed('0.643') //0.64
numberFixed(240.3536363625,6)//240.353636
numberFixed('hello') // hello
1、向下取整 注:Math.floor()不进行四舍五入,直接舍去小数部分 2、向上取整 注:Math.ceil()只要有小数且小数不为0,取整都直接给个位+1,小数位都舍去 3、四舍五入 注:Math.round()() 小数第一位小于5舍去,大于等于5向前进一位 4、保留小数位数 注:toFixed(n) n为要保留的小数位数,toFixed()会做四舍五入处理 5、科学计数法 注:toPrecision(1) n为要保留的位数,toPrecision() 会做四舍五入处理 6、去掉小数部分多余的0