首页 > 其他分享 >js小数相加精度不准确

js小数相加精度不准确

时间:2022-12-20 11:12:03浏览次数:26  
标签:arg1 相加 js try length toString split catch 小数

例: 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)}
)}

标签:arg1,相加,js,try,length,toString,split,catch,小数
From: https://www.cnblogs.com/guodadan/p/16993768.html

相关文章

  • ExtJS 日期处理
    计算是否在日期范围内console.log(Ext.Date.between(newDate('07/01/2022'),newDate('05/01/2022'),newDate('12/01/2022')));获得一个月的最后一天日期console.l......
  • jsconfig.json 配置vscode只能跳转文件
    -根目录创建jsconfig.json{"compilerOptions":{"baseUrl":"./","paths":{"@/*":["src/*"],}},"include":["src/**/*"],......
  • 深入对比TOML,JSON和YAML
    坦率地说,在我开始与HugoTOML合作之前,我感到羞耻是一个需要发现的新领域,但我对YAML和JSON非常熟悉。本文将帮助您了解如何通过不同的数据格式构建数据。    在Hugo中,您......
  • SpringMVC传递json字符串,后台接口通过变量接收
    前景介绍在我们日常开发过程中,前台向后台传递参数一般是json或者form表单方式,并且最好统一一种传输方式,不建议json+form混合使用,但是由于form表单在数组结构下拼接比较......
  • jsp企业财务管理系统设计与实现(论文+PPT+源码)
    毕业设计(论文)任务书第1页毕业设计(论文)题目:企业财务管理系统设计与实现毕业设计(论文)要求及原始数据(资料):了解企业费用管理流程的关键点;2.深入研究企业费用流程中的各个环节;3.熟......
  • jsp百货中心供应链管理系统
    毕业设计说明书百货中心供应链管理系统百货中心供应链管理系统摘要近年来,随着计算机技术的发展,以及信息化时代下企业对效率的需求,计算机技术与通信技术已经被越来越多地应用......
  • JSP改造OA项目
    Jsp改造OA项目使用Servlet+JSP完成oa项目的改造使用servlet收集数据使用jsp展示数据将之前的原型html文件修改为jsp在文件头部添加<%@pagecontentType="text/htm......
  • Js运算符
      vara=5 a+=5表示a=a+5      ......
  • 记录--教你用three.js写一个炫酷的3D登陆页面
    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助前言:该篇文章用到的主要技术:vue3、three.js我们先看看成品效果:高清大图预览(会有些慢):座机小图预览:......
  • js处理树形数组扁平化
      //树形数组扁平化constextractTree=(data:TagsParams[])=>{if(!data.length)return[];constlist:TagsParams[]=[];constgetOb......