js小数相加精度不准确
2024-10-21 17:35:07
例: 0.1+0.1+0.1+0.7 != 1
0.1+0.2 != 0.3
解决办法:
相加
function addNum(num1, num2) {
let sq1, sq2;
try {
sq1 = num1.toString().split(".")[1].length;
} catch (e) {
sq1 = 0;
}
try {
sq2 = num2.toString().split(".")[1].length;
} catch (e) {
sq2 = 0;
}
const m = Math.pow(10, Math.max(sq1, sq2));
return (num1 * m + num2 * m) / m;
}
相除
function accDiv(arg1,arg2){
var t1=0,t2=0,r1,r2;
try{
t1=arg1.toString().split(".")[1].length;
}catch(e){}
try{
t2=arg2.toString().split(".")[1].length;
}catch(e){}
with(Math){
r1=Number(arg1.toString().replace(".",""));
r2=Number(arg2.toString().replace(".",""));
return (r1/r2)*pow(10,t2-t1);
}
}
相乘
function accMul(arg1,arg2){
var m=0,s1=arg1.toString(),
s2=arg2.toString();
try{
m+=s1.split(".")[1].length}catch(e){}
try{
m+=s2.split(".")[1].length}catch(e){}
return Number(s1.replace(".",""))*Number(s2.replace(".",""))/Math.pow(10,m)}
)}
最新文章
- 使用js-xlsx库,前端读取Excel报表文件
- combox
- 数据库——DQL(语句查询)
- Java数据结构——有序链表
- windows 下的定时任务
- linux VM复制多个IP配置出错的处理
- python基础学习笔记第二天 内建方法(s t r)
- 【Linux常用工具】03. Linux性能测试工具ab
- 定义页面的Dispose方法:[before]unload事件启示录
- Python学习 之 运算符&;表达式
- (十二)学习CSS之display属性
- DOS 命令 attrib:修改文件属性
- 用Lighttpd做图片服务器
- AS3开发必须掌握的内容
- Flutter常用组件(Widget)解析-Text
- 实战:mysql统计指定架构的全部表的数据和索引大小情况-v2
- SSIS系列文章收藏
- JavaWeb分页显示内容之分页查询的三种思路(数据库分页查询)
- python IDLE 自动提示功能
- EF大数据批量添加性能问题(续)