js 关于浮点型的处理

下舍入

Math.floor(x) 方法执行的是向下取整计算,它返回的是小于或等于函数参数,并且与之最接近的整数。

Math.floor(0.60); //0
Math.floor(0.40); //0
Math.floor(5); //5
Math.floor(5.1); //5
Math.floor(-5.1); //-6
Math.floor(-5.9); //-6
不四舍五入

1.先把浮点型乘于需要保留小数点的倍数,然后向下取整,再除回这个倍数:
Math.floor(15.7784514000 * 100) / 100
// 输出结果为 15.77
下面来看看该方法需注意的细节

//1.输入值可以是string类型,也可以是number类型,返回值为number类型
var num = '0.088';
var res = Math.floor(num * 100) / 100; //0.08
typeof res; //number

//2. 返回值不会自动填充0
Math.floor(0.088* 100) / 100; //0.08
Math.floor(0.008* 100) / 100; //0
Math.floor(0.1 * 100) / 100; //0.1
Math.floor(22 * 100) / 100; //22

//3. 输入值为null时返回0
Math.floor(null * 100) / 100; //0

//4.输入值为undefined、NaN时返回NaN
Math.floor(NaN * 100) / 100; //NaN
Math.floor(undefined * 100) / 100; //NaN

//5.如何防止返回NaN的情况
Math.floor((undefined || 0) * 100) / 100; //0
//注意:(undefined || 0)要用括号包起来,如果不包起来先运行,当输入值为实际值(不是undefined时0会和100先运行,如下)
Math.floor(22 || 0 * 100) / 100; //0.22
Math.floor((22 || 0) * 100) / 100; //22
image.png
四舍五入

var num =2.446242342;
num = num.toFixed(2); // 输出结果为 2.45

注意点:
1.四舍五入
2.输入值需为int型或浮点型
3.返回值为string类型
4.会自动填充小数点位数

// 2.
5.56789.toFixed(2); //5.57
'5.56789'.toFixed(2); //toFixed is not a function
parseFloat('5.56789').toFixed(2); //5.57

//3.
typeof 5.56789.toFixed(2) //string

//4.
5.56.toFixed(5); //5.56000
5.56.toFixed(); //6
5.56.toFixed(0); //6
parseFloat(5).toFixed(5); //5.00000
parseInt(5).toFixed(5); //5.00000

你可能感兴趣的:(js 关于浮点型的处理)