javascript 浮点运算
2024-10-19 15:37:06
<script type="text/javascript"> // 两个浮点数求和
function accAdd(num1,num2){
var r1,r2,m;
try{
r1 = num1.toString().split('.')[1].length;
}catch(e){
r1 = 0;
}
try{
r2=num2.toString().split(".")[1].length;
}catch(e){
r2=0;
}
m=Math.pow(10,Math.max(r1,r2));
// return (num1*m+num2*m)/m;
return Math.round(num1*m+num2*m)/m;
} // 两个浮点数相减
function accSub(num1,num2){
var r1,r2,m;
try{
r1 = num1.toString().split('.')[1].length;
}catch(e){
r1 = 0;
}
try{
r2=num2.toString().split(".")[1].length;
}catch(e){
r2=0;
}
m=Math.pow(10,Math.max(r1,r2));
n=(r1>=r2)?r1:r2;
return (Math.round(num1*m-num2*m)/m).toFixed(n);
}
// 两数相除
function accDiv(num1,num2){
var t1,t2,r1,r2;
try{
t1 = num1.toString().split('.')[1].length;
}catch(e){
t1 = 0;
}
try{
t2=num2.toString().split(".")[1].length;
}catch(e){
t2=0;
}
r1=Number(num1.toString().replace(".",""));
r2=Number(num2.toString().replace(".",""));
return (r1/r2)*Math.pow(10,t2-t1);
} function accMul(num1,num2){
var m=0,s1=num1.toString(),s2=num2.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);
} </script> <script>
document.write("使用js原生态方法");
document.write("<br/> 1.01 + 1.02 ="+(1.01 + 1.02));
document.write("<br/> 1.01 - 1.02 ="+(1.01 - 1.02));
document.write("<br/> 0.000001 / 0.0001 ="+(0.000001 / 0.0001));
document.write("<br/> 0.012345 * 0.000001 ="+(0.012345 * 0.000001));
document.write("<br/><hr/>");
document.write("<br/>使用自定义方法");
document.write("<br/> 1.01 + 1.02 ="+accAdd(1.01,1.02));
document.write("<br/> 1.01 - 1.02 ="+accSub(1.01,1.02));
document.write("<br/> 0.000001 / 0.0001 ="+accDiv(0.000001,0.0001));
document.write("<br/> 0.012345 * 0.000001 ="+accMul(0.012345,0.000001));
</script>
最新文章
- Meta http-equiv属性与HTTP头的Expires中(Cache-control)详解
- 让UNION与ORDER BY并存于SQL语句当中
- [Leetcode] Permutations II
- 【堆栈应用一】一个数divided=几个最小质因数的乘积(时间复杂度On)
- 转:linux 修改sftp服务默认提供者sshd的session timeout
- WPF之旅(一)- 概述
- Android MuPDF 部署
- 转:并查集总结 例题:hdoj 1232 畅通工程
- [三]SpringMvc学习-封装、乱码问题、重定向、转发
- 简单的ajax遮罩层(加载进度圈)cvi_busy_lib.js
- memcached server install(WSL)
- springcloud ribbon 客户端负载均衡用法
- Servlet(三):获取表单数据、解决乱码和报错问题
- VMware中安装Centos 7
- Linux出现wrong ELF class: ELFCLASS64
- iPhone 收藏网址[添加到书签] 和 [添加到主屏幕] 显示自定义图标,而不是网页截图
- webservice-整理
- Linux中的软链接与硬链接
- (并查集 建立关系)食物链 -- POJ-- 1182
- LOOP AT SCREEN
热门文章
- ++index 与 index++
- 使用inno setup打包程序完整脚本(.net框架检测,重复安装检测)
- php中cookie+mysql实现的购物车代码
- js 字符串转化成数字:(实例:用正则检测大于0的正数,最多保留4位小数)
- ng-init
- (实用篇)PHP缓存类完整实例
- Sqlserver CheckPoint 在三种恢复模式中的不同表现
- 334. Increasing Triplet Subsequence
- nfs文件系统启动参数配置
- 织梦DedeCMS"当前位置"去除最后一个 >; 符号的方法