前言:这玩意其实开发的时候经常会遇到,我也不知道为啥,趁机会记一下吧- -

四舍五入

  • 注意:保留两位小数,将数值类型的数据改变成了字符串类型
1
2
3
var num = 2.447562341;
num = num.toFixed(2); // 输出结果为 2.45
console.log(typeof num) // string

不四舍五入

  • 第一种,先把小数变整数,再除,向下取整
  • 注意,不改变数据类型
1
Math.floor(17.79845550 * 100) / 100 // 输出结果为 17.79
  • 第二种,当作字符串,使用正则匹配:
  • 注意,先将数据转换为字符串,最后再转为数值类型
1
Number(17.79845550.toString().match(/^\d+(?:\.\d{0,2})?/)) // 输出结果为 17.79,不能用于整数如 10 必须写为10.0000

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

Js取float型小数点后两位数的方法

  1. 将浮点数四舍五入,取小数点后2位
1
2
3
4
5
6
7
8
9
10
11
function toDecimal(x) { 
var num = parseFloat(x);
if (isNaN(num)) {
alert('传参类型错误,请检查!')
return;
}
num = Math.round(x*100)/100;
return num;
}

console.log(toDecimal(2.447562341)) // 输出 2.45

Js中部分对小数的操作

  1. 丢弃小数部分,保留整数部分
1
parseInt(7/2) // 3
  1. 向上取整,有小数就整数部分加1
1
Math.ceil(7/2) // 4
  1. 四舍五入
1
Math.round(5.88/2) // 3
  1. 向下取整
1
Math.floor(5.88/2) // 2