博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JS处理四舍五入函数 toFixed(n)(可取小数点后n位)
阅读量:5092 次
发布时间:2019-06-13

本文共 886 字,大约阅读时间需要 2 分钟。

在JS中四舍五入的函数 toFixed(n) , n为要保留的小数位数。 n为0~20,当n超过20的时候,JS会出错。

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

       var h=0.07
       h.toFixed(1)的值为0.0

其实要解决这个问题,原来是不一定要重写js中的Number类型的toFixed方法的。
一个非常牛的同事,想到了一个他说很笨,但是我觉得很牛的方法。
JS的API上说, 截取的位数前至少要有一位不是0的。
于是,他这个很笨却很牛的方法是:使用toFixed方法之前加1,使用之后再减去1。

 

1     var num = 0.007;//要四舍五入的数字  2     var fixNum = new Number(num+1).toFixed(2);//四舍五入之前加1  3     var fixedNum = new Number(fixNum - 1).toFixed(2);//四舍五入之后减1,再四舍五入一下  4     alert(fixedNum);//弹出的数字就是正确的四舍五入结果啦

 

 

方法二:

下面的脚本是重写了toFixed(),这样0.056就可以转化到0.1了

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

文章来自:http://blog.csdn.net/nuptsv_ice/article/details/10493659

 

转载于:https://www.cnblogs.com/webqiand/p/4330283.html

你可能感兴趣的文章
91. Decode Ways
查看>>
246. Strobogrammatic Number
查看>>
2.5 浮点型数值
查看>>
[ Talk is Cheap Show me the CODE ] : jQuery Mobile页面布局
查看>>
666的vue.mixin
查看>>
bbs小项目整理(五)(登录模块的完成)
查看>>
微信小程序入门
查看>>
[Markdown]纯文本标记语言MarkdowPad2--MD语法知识
查看>>
8岁小学生表白遭拒:被一部iPhone打败
查看>>
解决git 命令出现end问题
查看>>
20169217 《Linux内核原理与分析》 第十一周作业
查看>>
{面试题4: 替换空格}
查看>>
Centos 03 基础命令
查看>>
cNoteSetColor_命令窗口颜色设置
查看>>
!学习笔记:前端测试 、前端调试、console 等
查看>>
Eclipse内置Tomcat的配置
查看>>
NOIp2018集训test-9-17(pm)
查看>>
bzoj 1414: [ZJOI2009]对称的正方形
查看>>
centos安装rvm报错@curl -L get.rvm.io | bash -s stable fails on cent OS
查看>>
Js/Jquery获取input file的文件名
查看>>