js 页面小数相加精度问题
2024-10-09 18:07:09
解决方法:把需要计算的数字升级(乘以10的n次幂)成计算机能够精确识别的整数,等计算完毕再降级(除以10的n次幂),这是大部分编程语言处理精度差异的通用方法。
比如计算0.33和5.2的和,则需要把(0.33*100+5.2*100)/100。
函数:
var numAdd = function (num1, num2) {//要相加的两个数
var baseNum, baseNum1, baseNum2;
try {
baseNum1 = num1.toString().split(".")[1].length;
} catch (e) {
baseNum1 = 0;
}
try {
baseNum2 = num2.toString().split(".")[1].length;
} catch (e) {
baseNum2 = 0;
}
baseNum = Math.pow(10, Math.max(baseNum1, baseNum2));
var n = (num1 * baseNum + num2 * baseNum) / baseNum;
return n;
};
最新文章
- etl结合java的例子
- AttributeError: '_csv.reader' object has no attribute 'next'
- iOS-旧项目中手动内存管理(MRC)转ARC
- struts2DMI(动态方法调用)
- GSM Hacking:使用BladeRF、树莓派、YatesBTS搭建便携式GSM基站
- git 和 svn的区别(转)
- Android (cocos2dx 网络访问)访问权限设置
- 关于JDK中的设计模式
- 【转】C,C++中使用可变参数
- building Utils {{ant+ivy}、{maven}}怎么样手动将下载下来的 JAR 包添加到 Maven、ivy 的本地仓库
- [转] Mac OX上安装MongoDb
- LeetCode——Linked List Cycle II
- mybatis 入门进阶之 mapper
- sed标签
- 优雅地 `async/await`
- [Swift]LeetCode103. 二叉树的锯齿形层次遍历 | Binary Tree Zigzag Level Order Traversal
- Oracle集群(RAC)时间同步(ntp和CTSS)
- asp.net 后台 get,post请求
- JavaScript-年月日转换12小时制
- python3.5安装Numpy、mayploylib、opencv等额外库