jquery的toFixed方法的正确使用
以下内容转载地址:http://www.cnblogs.com/zengguowang/p/5981626.html
最近一段时候公司的项目中遇到这么个事情,需要计算手续费,而这个手续费必须是保留小数点后面两位,且是由小数点后面第三位四舍五入,就这么个场景:
说说我计算的过程,下面是前两个数是测试用的:
howMuch = 119;
allow_sum = 116;
interest = 0.005;//这是利率
计算出来的是(119-116)*0.005 = 0.015,按照业务要求四舍五入保留小数点后2位,结果应该是0.02
1.一开始直接使用的toFixed方法计算的手续费:
计算方式:value = (((howMuch-allow_sum)*interest*100)/100).toFixed(2);
计算结果:0.01
原因:toFixed它是一个四舍六入五成双的诡异的方法,"四舍六入五成双"含义:对于位数很多的近似数,当有效位数确定后,其后面多余的数字应该舍去,只保留有效数字最末一位,这种修约(舍入)规则是“四舍六入五成双”,也即“4舍6入5凑偶”这里“四”是指≤4 时舍去,"六"是指≥6时进上,"五"指的是根据5后面的数字来定,当5后有数时,舍5入1;当5后无有效数字时,需要分两种情况来讲:①5前为奇数,舍5入1;②5前为偶数,舍5不进。(0是偶数)
2.发现问题后我就换了一种方法[Math.round()],这种方法避免了上面的问题:
计算方式:value = Math.round((howMuch-allow_sum)*interest*100)/100;
计算结果:0.02
虽然避免了上面的问题,在特定的情况下有引发了新的问题,比如:
howMuch = 119;
allow_sum = 100;
计算方式:value = Math.round((howMuch-allow_sum)*interest*100)/100;
计算结果:计算出来的是(119-100)*0.005 = 0.095,四舍五入就变成了0.1了,而业务需求是小数点后面两位,也就是0.10
3.发现上一个问题后,我决定把两个方法结合起来使用:
计算方式:value = (Math.round((howMuch-allow_sum)*interest*100)/100).toFixed(2);
计算结果:计算出来的是(119-100)*0.005 = 0.095,四舍五入后是0.10,刚好符合业务的要求
写的不对的地方,欢迎留言指正,谢谢!
jquery的toFixed方法的正确使用相关推荐
- jQuery通过ajax方法获取json数据不执行success的原因及解决方法
1.jquery通过ajax方法获取json数据不执行success回调 问题描述:jquery通过ajax方法获取json数据不执行success回调方法 问题原因:json格式存在问题或不符合标准 ...
- jquery load使用方法
jquery load使用方法 2009-08-04 10:08 错误: $('#a').load("b.php?msg=<?=$msg?>&edit=<?=$_G ...
- jquery中Live方法不可用,Jquery中Live方法失效
jquery中Live方法不可用,Jquery中Live方法失效 >>>>>>>>>>>>>>>>> ...
- jquery 通过submit()方法 提交表单示例
jquery 通过submit()方法 提交表单示例: 本示例:以用户注册作为例子.使用jquery中的submit()方法实现表单提交. 注:本示例仅提供了对表单的验证,本例只用选用了三个字段作为测 ...
- jQuery Ajax - ajax()方法,参数注释
jQuery Ajax - ajax()方法,参数注释 ajax(参数注释,解答): $.ajax({// type,请求方式type: "get", // url,地址,就是ac ...
- jquery通过ajax方法获取json数据不执行success
1.jquery通过ajax方法获取json数据不执行success回调 问题描述:jquery通过ajax方法获取json数据不执行success回调方法 问题原因:json格式存在问题或不符合标准 ...
- 验证邮箱格式html代码,jquery验证邮箱格式是否正确实例讲解
我们来看看都有哪些邮箱: 我们如果一个个的邮箱进行判断,显然是不可能的了. -个完整的Internet邮件地址由以下两个部分组成,格式如下:登录名@主机名.域名中间用-个表示"在" ...
- ie11 ajax 加载提示,解决在IE11浏览器下,JQuery的AJAX方法不响应问题
在项目的时候一直都是在使用谷歌浏览器在调试,后来在现场部署到服务器上的时候,客户使用的是IE浏览器,版本是11 在测试的过程中,出现几个问题,虽然是几个问题,但是问题的原因就是AJAX第一次响应,第二 ...
- jQuery速记Ajax方法简介
如果您从未听说过Ajax这个词,请举手. 我敢打赌,几乎所有人的手臂都向下垂,靠近他们的身体. Ajax 最初代表异步JavaScript和XML ,它是最常用的客户端方法之一,可帮助创建异步网站和W ...
最新文章
- api可以主动采集用户数据吗_数据埋点采集的那些事儿
- OS_FLAG.C(1)
- Hibernate总结1
- Shiro+springboot+mybatis(md5+salt+散列)认证与授权-02
- [Jarvis OJ - PWN]——[61dctf]fm
- mysql my.ini my.cnf_Mysql配置文件my.ini/my.cnf
- win10一直正在检查更新_教你win10升级更新失败怎么办
- React(76)--react 主题开发目录
- springboot接收json参数_Springboot + Vue + shiro 实现前后端分离、权限控制
- 性能测试之性能监控技术
- 2018.8.29牛客OI测试赛A-斐波那契题解(找规律)
- 多元统计分析基于r课后答案_应用多元统计分析课后答案
- 多元统计分析朱建平pdf_应用多元统计分析 朱建平 课后答案.pdf
- kuwo.php源码,酷我音乐官方flash播放器调用代码
- Python模块之logging详解
- 6个杰出的国产APP推荐,你知道多少呢?
- 线索二叉树(前中后序线索化/遍历/画线索)
- elasticsearch rpm安装及详细配置
- 京东2021校园招聘笔试(8.27编程部分)——数据开发工程师(数列变换A了9%)
- 都市鸿蒙珠认主,都市之我能穿越洪荒