以下内容转载地址: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方法的正确使用相关推荐

  1. jQuery通过ajax方法获取json数据不执行success的原因及解决方法

    1.jquery通过ajax方法获取json数据不执行success回调 问题描述:jquery通过ajax方法获取json数据不执行success回调方法 问题原因:json格式存在问题或不符合标准 ...

  2. jquery load使用方法

    jquery load使用方法 2009-08-04 10:08 错误: $('#a').load("b.php?msg=<?=$msg?>&edit=<?=$_G ...

  3. jquery中Live方法不可用,Jquery中Live方法失效

    jquery中Live方法不可用,Jquery中Live方法失效 >>>>>>>>>>>>>>>>> ...

  4. jquery 通过submit()方法 提交表单示例

    jquery 通过submit()方法 提交表单示例: 本示例:以用户注册作为例子.使用jquery中的submit()方法实现表单提交. 注:本示例仅提供了对表单的验证,本例只用选用了三个字段作为测 ...

  5. jQuery Ajax - ajax()方法,参数注释

    jQuery Ajax - ajax()方法,参数注释 ajax(参数注释,解答): $.ajax({// type,请求方式type: "get", // url,地址,就是ac ...

  6. jquery通过ajax方法获取json数据不执行success

    1.jquery通过ajax方法获取json数据不执行success回调 问题描述:jquery通过ajax方法获取json数据不执行success回调方法 问题原因:json格式存在问题或不符合标准 ...

  7. 验证邮箱格式html代码,jquery验证邮箱格式是否正确实例讲解

    我们来看看都有哪些邮箱: 我们如果一个个的邮箱进行判断,显然是不可能的了. -个完整的Internet邮件地址由以下两个部分组成,格式如下:登录名@主机名.域名中间用-个表示"在" ...

  8. ie11 ajax 加载提示,解决在IE11浏览器下,JQuery的AJAX方法不响应问题

    在项目的时候一直都是在使用谷歌浏览器在调试,后来在现场部署到服务器上的时候,客户使用的是IE浏览器,版本是11 在测试的过程中,出现几个问题,虽然是几个问题,但是问题的原因就是AJAX第一次响应,第二 ...

  9. jQuery速记Ajax方法简介

    如果您从未听说过Ajax这个词,请举手. 我敢打赌,几乎所有人的手臂都向下垂,靠近他们的身体. Ajax 最初代表异步JavaScript和XML ,它是最常用的客户端方法之一,可帮助创建异步网站和W ...

最新文章

  1. api可以主动采集用户数据吗_数据埋点采集的那些事儿
  2. OS_FLAG.C(1)
  3. Hibernate总结1
  4. Shiro+springboot+mybatis(md5+salt+散列)认证与授权-02
  5. [Jarvis OJ - PWN]——[61dctf]fm
  6. mysql my.ini my.cnf_Mysql配置文件my.ini/my.cnf
  7. win10一直正在检查更新_教你win10升级更新失败怎么办
  8. React(76)--react 主题开发目录
  9. springboot接收json参数_Springboot + Vue + shiro 实现前后端分离、权限控制
  10. 性能测试之性能监控技术
  11. 2018.8.29牛客OI测试赛A-斐波那契题解(找规律)
  12. 多元统计分析基于r课后答案_应用多元统计分析课后答案
  13. 多元统计分析朱建平pdf_应用多元统计分析 朱建平 课后答案.pdf
  14. kuwo.php源码,酷我音乐官方flash播放器调用代码
  15. Python模块之logging详解
  16. 6个杰出的国产APP推荐,你知道多少呢?
  17. 线索二叉树(前中后序线索化/遍历/画线索)
  18. elasticsearch rpm安装及详细配置
  19. 京东2021校园招聘笔试(8.27编程部分)——数据开发工程师(数列变换A了9%)
  20. 都市鸿蒙珠认主,都市之我能穿越洪荒

热门文章

  1. 大数据时代,统计学方法有多大的效果?
  2. win10电脑屏幕变成紫色
  3. 《侠盗猎车手:圣安地列斯》出租车任务奖金计算程序(Java编写)
  4. run as server和run as run java application
  5. 我经历过的失败产品和项目(六):体验很差的视频会议系统
  6. Abaqus 2021的软件工程模拟有限元分析软件
  7. 天际线,楼宇轮廓问题
  8. VR/AR是什么,有什么差别,5G与VR/AR到底有没有关系呢?
  9. 64位系统VBS调用32位COM组件
  10. 提高睡眠质量的助眠好物,双十一值得买的助眠好物