JS toFixed(2) 返回 -0.00
今天遇到一个线上生产问题,据运维人员反馈,在某界面进行计算的时候,结果出现了一个值为-0.00,本来应该是0.00,遂去查了一下问题,js前端大致代码如下:
var x=Number(document.getElementById('x').value);var y=Number(document.getElementById('y').value);var z=Number(document.getElementById('z').value);var result=document.getElementById('result');result.value=(x-y-z).toFixed(2);
当然代码没这么简单,我随便写了一段案例,也就是一个数,减去另外两个数,然后查了一下数据库获取到三个值分别为2048.04、1595.21、452.83,所以本应该是:
2048.04-1595.21-452.83=0,但结果差强人意,界面显示却是-0.00
因为计算的是跟钱相关的金额,再看使用的是number类型,所以看到这里大致猜想是丢失精度导致,因此写一个案例测试一下
<!DOCTYPE html>
<html><head> <meta charset="UTF-8" /> <title></title> <script>function cal(tty){var x=Number(document.getElementById('x').value);var y=Number(document.getElementById('y').value);var z=Number(document.getElementById('z').value);var result=document.getElementById('result');result.value=(x-y-z).toFixed(2); }</script> </head> <body> <form> <br /> 第一个数: <input type="text" id="x" value="0.3" /> <br /> 第二个数: <input type="text" id="z" value="0.2" /> <br /> 第三个数: <input type="text" id="y" value="0.1" /> <br /> 计算结果: <input id="result" type="text" /> <br /> <button type="button" id="tty" value="-" onclick="cal(this)">-</button> </form> </body>
</html>
查看结果返回-0.00
因此需要做出改造,可以引入decimal.js来实现,可以直接在gitee下载
decimal.js下载
<!DOCTYPE html>
<html><head> <meta charset="UTF-8" /> <title></title> <script type="text/javascript" src="decimal.js"></script> <script>function cal(tty){var x=Number(document.getElementById('x').value);var y=Number(document.getElementById('y').value);var z=Number(document.getElementById('z').value);var result=document.getElementById('result');var decimalTest=new Decimal(x).sub(new Decimal(y)).sub(new Decimal(z));result.value=decimalTest.toFixed(2); }
</script> </head> <body> <form> <br /> 第一个数: <input type="text" id="x" value="0.3" /> <br /> 第二个数: <input type="text" id="z" value="0.2" /> <br /> 第三个数: <input type="text" id="y" value="0.1" /> <br /> 计算结果: <input id="result" type="text" /> <br /> <button type="button" id="tty" value="-" onclick="cal(this)">-</button> </form> </body>
</html>
结果反正正常数据
JS toFixed(2) 返回 -0.00相关推荐
- JS toFixed的使用误差,银行家算法(四舍六入五取偶)实现
JS toFixed的使用误差,银行家算法(四舍六入五取偶)实现 前言 toFixed方法 "四舍六入五取偶" 问题 银行家算法实现 扩展 原因 解决方式 附注 前言 JS是一门弱 ...
- Ext JS的4.1.0的RC 1的发行说明
Ext JS的 - JavaScript框架 Ext JS的4.1.0的RC 1的发行说明 发行日期:2012年3月13, 版本号:4.1.0的RC 1 修正的错误 钮 EXTJSIV-5129 按钮 ...
- Linux 0.00 代码解析(一)
<Linux内核完全剖析>这本书在第4章给出了一个简单多任务内核示例程序,作者称之为Linux 0.00系统. 源码的下载地址和实验方法可以参考我的博文 http://blog.csdn. ...
- java 怎么判断1_1.0_1.00是同一个数_php如何优雅的判断 0.0/0.00/0.000 是否为空? 测试过用empty函数不行...
php如何优雅的判断 0.0/0.00/0.000 是否为空? 测试过用empty函数不行 如何优雅 ? if ( (int) $number == 0) echo 'empty'; if ( flo ...
- 修改 decimal 默认值为0.00 sql_被经理邀请去“爬山”,只是因为我写错了一条SQL语句?...
作者:isysc1 链接:https://juejin.im/post/5f06a2156fb9a07e5f5180df 来源:掘金 前戏 SQL 写的妙,涨薪呱呱叫! 新来的实习生小杨写了一条 SQ ...
- request.cookie[name]的到的过期时间是{0001-1-1 0:00:00}
现在真正接触 cookie了. 但是跟踪发现request的cookie过期时间总是 {0001-1-1 0:00:00} HttpCookie ck = Request.Cookies[" ...
- JavaScript中的ParseInt(08)和“09”返回0的原因分析及解决办法
今天在程序中出现一个bugger ,调试了好久,最后才发现,原来是这个问题. 做了一个实验: alert(parseInt("01")),当这个里面的值为01====>07时 ...
- Linux 0.00简单多任务内核head.s超详注释
# head.s包含32位保护模式初始化设置代码.时钟中断代码.系统调用中断代码和两个任务的代码. # 在初始化完成之后程序移动到任务0开始执行,并在时钟中断控制下进行任务0和1之间的切换操作. LA ...
- js处理后端返回超过16位大数字方案
js处理后端返回超过16位大数字方案 这个问题与这篇博客讲的问题类似.(https://blog.csdn.net/StoneVivi/article/details/105210934).这里就不具 ...
最新文章
- arcgis车辆轨迹动态_聪明反被聪明误 屏蔽车辆GPS被处罚
- 计算机c语言试题文档,c语言计算机考试试题
- Delphi中拖动无边框窗口的5种方法
- android 左移动画_Android 控件的显示隐藏上下左右移动动画
- 什么是51%算力攻击?——区块链系列学习笔记
- 18岁初中毕业学Java_刚满十八 初中毕业 java自学完了 没学历 该怎么办?
- 使用CoreImage教程
- 27. 二叉树的镜像
- eclipse.ini 修改默认编码为 UTF-8
- 多功能工具箱微信小程序源码
- matlab的wthcoef函数,小波去噪及其MATLAB中的函数.pdf
- 疯狂的程序员 兼职(下)
- KNEEL: Knee Anatomical Landmark Localization Using Hourglass Networks
- c语言中begin用法,C++ deque cbegin()用法及代码示例
- 计算机网上培训6,wordexcel计算机基础培训6.pptx
- 计算机毕业设计ssm社区爱心活动网站be83l系统+程序+源码+lw+远程部署
- ppt给图片增加高斯模糊_PPT图片处理小技巧
- 项目经验教训总结(教育软件)
- 计算机类优质课课件一等奖,小学信息技术《认识画图》优质课比赛课件
- 前端处理sku表格数据
热门文章
- scrollView 横向
- 【例题】系统中原有三类资源A、B、C和五个进程P1、P2、P3、P4、P5,A资源17,B资源5,C资源20。当前(TO时刻)系统资源分配和进程最大需求如下表。
- python调用OpenCV和IOSAutoTouch实现硬件级免越狱自动化
- PCA(主成分分析)
- 用 HTTPS 安全吗?HTTPS 的原理是啥?
- 常见WebShell客户端的流量特征及检测思路
- 人工智能和AI到底是什么??浅谈人工智能和AI
- Application.platform 平台
- 人机猜拳代码python_python 实现人和电脑猜拳的示例代码
- 什么是 NullPointerException?