`

js四舍五入

    博客分类:
  • web
 
阅读更多

方法一:

 在JS中四舍五入的函数 toFixed(n) , n为要保留的小数位数。

         n为0~20,当n超过20的时候,JS会出错。

         var d=10.005;

          var f=d.toFixed(2);

          alert(f);

          bug:

          如果小数点前和要截取的前一位都是0时,不会按常理截取。

          var h=0.07

          h.toFixed(1)的值为0.0

          如果要修改这个缺陷,可以把js中的Number类型的toFixed方法重写。

例如:

Number.prototype.toFixed = function(d)

  {

      var s=this+"";if(!d)d=0;

      if(s.indexOf(".")==-1)s+=".";s+=new Array(d+1).join("0");

      if (new RegExp("^(-|\\+)?(\\d+(\\.\\d{0,"+ (d+1) +"})?)\\d*$").test(s))

      {

          var s="0"+ RegExp.$2, pm=RegExp.$1, a=RegExp.$3.length, b=true;

          if (a==d+2){a=s.match(/\d/g); if (parseInt(a[a.length-1])>4)

          {

              for(var i=a.length-2; i>=0; i--) {a[i] = parseInt(a[i])+1;

              if(a[i]==10){a[i]=0; b=i!=1;} else break;}

          }

          s=a.join("").replace(new RegExp("(\\d+)(\\d{"+d+"})\\d$"),"$1.$2");

      }if(b)s=s.substr(1);return (pm+s).replace(/\.$/, "");} return this+"";

};   

这样就可以修复Number类型的toFixed方法。

 

 

方法二:

 

之前一直在用这个js自带的toFixed函数来进行四舍五入的操作,可是,在实际使用过程中却遇到了问题。

比如

Javascript代码 复制代码
  1. var money=0.00542;//0.006;   
  2. alert(Number(money).toFixed(2));   
  3. //0.00  
var money=0.00542;//0.006; alert(Number(money).toFixed(2)); //0.00



可以看出上面的结果是错误的,下面的方法通过巧妙的使用Math.round函数,完全可以解决数值很小时的精度问题。

Javascript代码 复制代码
  1. var money=0.00542;//0.006;   
  2. alert(Number(money).toFixed(2));   
  3.   
  4. function round2(number,fractionDigits){   
  5.     with(Math){   
  6.         return round(number*pow(10,fractionDigits))/pow(10,fractionDigits);   
  7.     }   
  8. }   
  9. alert(round2(money,2));//0.01  
var money=0.00542;//0.006; alert(Number(money).toFixed(2)); function round2(number,fractionDigits){ with(Math){ return round(number*pow(10,fractionDigits))/pow(10,fractionDigits); } } alert(round2(money,2));//0.01



round 方法
返回与给出的数值表达式最接近的整数。

Math.round(number)

必选项 number 参数是要舍入到最接近整数的值。

说明
如果 number 的小数部分大于等于 0.5,返回值是大于 number 的最小整数。否则,round 返回小于等于 number 的最大整数。

分享到:
评论

相关推荐

    Javascript四舍五入Math.round()与Math.pow()使用介绍

    Math.round()函数是JavaScript中的一个内建函数,它的作用是将给定的小数四舍五入到最接近的整数。当小数部分小于0.5时,结果会向下取整,即去掉小数部分;而当小数部分大于或等于0.5时,结果会向上取整,即增加1到...

    Javascript四舍五入(二)源码

    ### JavaScript 四舍五入方法详解 #### 一、引言 在JavaScript中,处理浮点数时常常会遇到精度问题。特别是在进行数值计算时,如何有效地对浮点数进行四舍五入处理是非常重要的。本文将详细介绍几种常见的实现四舍...

    js四舍五入-保留两位小数

    ### JavaScript 四舍五入并保留两位小数的方法 在JavaScript中实现四舍五五并保留两位小数的功能是常见的需求之一,特别是在处理财务数据或需要精确显示数值的应用场景下。根据提供的信息,我们将深入探讨如何在...

    Javascript四舍五入(一)源码

    `Math.round()`函数是JavaScript内置的一个数学方法,用于对数字进行四舍五入处理。此函数接收一个参数,即需要进行四舍五入操作的数值。该函数会返回最接近给定数字的整数。如果参数距离两个整数等距,则会向较大的...

    JS实现四舍六入五单双

    在某些行业,计算结果不是四舍五入,而是要求四舍六入五单双,且小数位数不固定,只明确有效位数。本程序就是应此需求而设计,输入原始数字和有效位数要求,则可返回按四舍六入后的结果。

    四舍五入_四舍五入问题_源码

    在这个场景中,标题"四舍五入_四舍五入问题_源码"暗示我们将讨论如何在编程中实现四舍五入操作,特别是与计算苹果单价和数量相关的总价问题。描述提到“输入苹果的单价及购买的数量,计算总价,分别显示总价的总价...

    js的四舍五入

    如何使得js能够将数字进行四舍五入,根据需求来取相应的位数

    js实现四舍五入完全保留两位小数的方法

    本文实例讲述了js实现四舍五入完全保留两位小数的方法。分享给大家供大家参考,具体如下: //四舍五入保留2位小数(若第二位小数为0,则保留一位小数) function keepTwoDecimal(num) { var result = parseFloat...

    js四舍五入数学函数round使用实例

    JavaScript中的数学对象Math提供了一个非常实用的四舍五入方法——round函数。该函数可以用于将数字四舍五入到最接近的整数。如果小数部分是.5或更高,它会向更高的方向四舍五入;如果小于.5,则向更低的方向四舍五...

    JS保留小数点(四舍五入、四舍六入)实现思路及实例

    代码如下: <!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN”> <html> <head> <title>floatDecimal.html</title> <meta http-equiv=”keywords” content=... charset

    javascript四舍五入函数代码分享(保留后几位)

    直接看代码吧 参数一:要保留小数位的数字 参数二:要保留的位数 代码如下:function FormatNumber(srcStr,nAfterDot){ var srcStr,nAfterDot; var resultStr,nTen; srcStr = “”+srcStr+””;...

    特殊数据的js四舍五入问题

    特殊数据的js四舍五入问题 2.885 7131.0 两数相乘:20572.934999999998 四舍五入后结果是:20572.93怎么回事啊? [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]比较好的解决方法: [Ctrl+A 全选 注:如需引入...

    C#.NET,JAVASCRIPT数字进行四舍五入保留两位小数

    这里我们将深入探讨C#.NET和JavaScript中如何实现数字四舍五入并保留两位小数的方法。 首先,让我们看看C#.NET中的解决方案。在C#中,我们可以使用`Math.Round`方法来实现四舍五入。这个方法接受一个double类型的值...

    四舍五入网页源代码.zip

    文件列表中只有一个名为“四舍五入网页源代码.rar”的文件,这通常意味着压缩包内包含了一个完整的项目,可能包括HTML文件(如index.html)、CSS文件(如style.css)和JavaScript文件(如script.js)。这些文件将...

    JavaScript里四舍五入函数round用法实例

    在JavaScript编程中,处理数字的四舍五入是一个非常常见的需求,而Math对象提供了一个名为round的函数来实现这一功能。round函数的主要作用是将给定的数字四舍五入到最接近的整数。以下是对round函数用法的详细解读...

Global site tag (gtag.js) - Google Analytics