JS技术

JavaScript四舍五入

字号+ 作者: 来源:    2014-11-17 20:00 我要评论( )

JavaScript四舍五入,阅读JavaScript四舍五入,用以下代码实现页面上javascript的四舍五入 scriptfunction ForDight1(Dight,How) {Dight =(Dight*Math.pow(10,How)/Math.pow(10,How)).toFixed(How); return Dight; }function ForDight2(Dight,How)...

用以下代码实现页面上javascript的四舍五入

<script>
function  ForDight1(Dight,How)  {
 Dight  =(Dight*Math.pow(10,How)/Math.pow(10,How)).toFixed(How); 
 return  Dight; 
}
function  ForDight2(Dight,How)  {
 Dight  =Math.round (Dight*Math.pow(10,How))/Math.pow(10,How); 
 return  Dight; 

alert(ForDight1(1067.34357,3)); 
alert(ForDight2(1067.34457,3)); 
</script>

 上面的脚本执行之后,发现两个函数的结果一样,都可以进行四舍五入的处理。推荐使用第一种方式哦,因为js的计算是使用二进制的,精度有问题。使用第二种方式,在某些特殊的数字处理的时候,可能会有问题。在上例中增加alert语句,增加alert(ForDight1(69451.385,2));alert(ForDight2(69451.385,2));alert(ForDight1(69451.305,2));alert(ForDight2(69451.305,2));再运行看看结果吧...看完结果之后,相信你也会采用第一种方式来进行JS的四舍五入运算的

这样就万事大吉了?NO...不信你再试试alert(ForDight1(0.056,1)); 照理说应该是0.1,可是结果是0.0  没辙了,只能重写toFixed,代码中再增加一段

Number.prototype.toFixed=function(len)
{
var add = 0;
var s,temp;
var s1 = this + "";
var start = s1.indexOf(".");
if(s1.substr(start+len+1,1)>=5)add=1;
var temp = Math.pow(10,len);
s = Math.floor(this * temp) + add;
return s/temp;
}

好了,这样再试试 嘿嘿,没问题了吧?

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • 学习JavaScript之this,call,apply

    学习JavaScript之this,call,apply

    2016-01-28 20:45

  • 轻松学习JavaScript十五:JavaScript之BOM简介 - 连宏伟 - 博客频道 - CSDN.NET 连宏

    轻松学习JavaScript十五:JavaScript之BOM简介 - 连宏伟 - 博客频道

    2015-12-13 11:34

  • 学习Javascript数组_Javascript教程

    学习Javascript数组_Javascript教程

    2015-10-02 09:18

  • 学习javascript应注意的问题_Javascript教程

    学习javascript应注意的问题_Javascript教程

    2015-09-29 13:03

网友点评