js四舍五入及任意保留小数位

亮术网 2020-05-19 本网原创

在 Javascript 中,四舍五入用 Math.round() 和 toFixed() 方法实现;前者只能取到整数部分,小数全部舍弃,如果要保留小数位,还得加些辅助代码;后者可任意保留小数位。下面先介绍 Math.round() 和 toFixed() 的简单用法,再介绍把它们位封装成可直接调用的方法。

 

一、js四舍五入的方法

1、方法:

Math.round(d);//d 为任意有效数值

NumberObject.toFixed(len);//len 为要保留的小数位数

 

2、Math.round 示例(取整):

Math.round(2.4);//输出:2

Math.round(2.5);//输出:3

Math.round(2.44);//输出:2

Math.round(2.54);//输出:3

Math.round(2.455);//输出:2

从输出结果可以看出,round() 方法只看小数点后的数是否大于等于5;如果是,则向前进1;如果不是,不管后面是否大于等于5都不向前进1。

 

3、NumberObject.toFixed 示例(保留指定小数位数):

var num = 2.4893;

num.toFixed(2);//保留2位小数,输出:2.49

num.toFixed(3);//保留3位小数,输出:2.489

num.toFixed(1);//保留1位小数,输出:2.5

 

 

二、js四舍五入返回整数时不保留小数位

Math.round()本身无法保留小数位,所以要实现保留指定的小数位(如2位,3位等),还要加几名代码,实现方法如下:

//取得整数时,不保留小数位,如,2.999,保留2位小数,返回 3
  //num:待四舍五入数值,len:保留小数位数
  function GetRound(num, len) {
    return Math.round(num * Math.pow(10, len)) / Math.pow(10, len);
  }

 

调用方法:

GetRound(2.999, 2);//保留2位小数,返回 3

GetRound(2.989, 2);//保留2位小数,返回 2.99

 

 

三、js四舍五入任何情况下都保留小数位

//保留小数位的四舍五入,如,2.999,保留2位小数,返回 3.00
  //num:待四舍五入数值,len:保留小数位数
  function GetRoundDd(num, len) {
    return num.toFixed(len);
  }

 

调用方法:

GetRoundDd(2.999, 2);//保留2位小数,返回 3.00

GetRoundDd(2.989, 2);//保留2位小数,返回 2.99

 

为了便于调用,分别把js四舍五入的语句封闭成了方法,如果返回整数时不需要保留小数位,则调用第二点的方法 GetRound(num, len);如果任何情况下都要求保留小数位,则调用第三点的方法 GetRoundDd(num, len)。

本文浓缩标签:四舍五入js