js浮点数精确计算(加、减、乘、除)
作者:互联网
2025-08-20
复制代码代码如下:
< SPAN style="FONT-SIZE: 18px" >//说明:javascript的加法结果会有误差,在两个浮点数相加的时候会比较明显。这个函数返回较为精确的加法结果。
//调用:accAdd(arg1,arg2)
//返回值:arg1加上arg2的精确结果
function accAdd(arg1,arg2){
var r1,r2,m;
try{r1=arg1.toString().split(".")[1].length}catch(e){r1=0}
try{r2=arg2.toString().split(".")[1].length}catch(e){r2=0}
m=Math.pow(10,Math.max(r1,r2))
return (arg1*m+arg2*m)/m
}< /SPAN >
复制代码代码如下:
< SPAN style="FONT-SIZE: 18px" >
//说明:javascript的减法结果会有误差,在两个浮点数相加的时候会比较明显。这个函数返回较为精确的减法结果。
//调用:accSub(arg1,arg2)
//返回值:arg1减上arg2的精确结果
function accSub(arg1,arg2){
return accAdd(arg1,-arg2);
}< /SPAN >
复制代码代码如下:
< SPAN style="FONT-SIZE: 18px" >
//说明:javascript的乘法结果会有误差,在两个浮点数相乘的时候会比较明显。这个函数返回较为精确的乘法结果。
//调用:accMul(arg1,arg2)
//返回值:arg1乘以arg2的精确结果
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)
}< /SPAN >
复制代码代码如下:
< SPAN style="FONT-SIZE: 18px" >
//说明:javascript的除法结果会有误差,在两个浮点数相除的时候会比较明显。这个函数返回较为精确的除法结果。
//调用:accDiv(arg1,arg2)
//返回值:arg1除以arg2的精确结果
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);
}
}< /SPAN >
相关标签:
相关推荐
专题
+ 收藏
+ 收藏
+ 收藏
+ 收藏
+ 收藏
+ 收藏
最新数据
相关文章
目录:VTJ.PRO 在线应用开发平台技术揭秘
4.响应式系统基础:从发布订阅模式的角度理解 Vue3 的数据响应式原理
vue3中静态提升和patchflag实现
你的 Vue 3 ref(),VuReact 会编译成什么样的 React?
你的 Vue 3 reactive(),VuReact 会编译成什么样的 React?
Vue3 转 React:组件透传 Attributes 与 useAttrs 使用详解|VuReact 实战
使用 VueUse 构建一个支持暂停/重置的 CountUp 组件
vue2中使用 AntV G6
前端视频媒体带声音自动播放方案最佳实践和教程
[前端]可折叠容器组件、信息展示卡片组件
AI精选
