js中进行浮点数运算时容易出现精度问题 清疚 2024-03-27 10:37 41阅读 0赞 ### **js中进行浮点数运算时容易出现精度问题** ### ### **1、除法函数** ### //说明: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); //---整数相除 在乘上10的平方 小数点的长度 } } ### **2、乘法函数** ### //说明: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) } \*\* ### 3、加法函数 ### \*\* //说明: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 } ### **4、减法函数** ### function accSub(arg1,arg2){ var r1,r2,m,n; 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)); //last modify by deeka //动态控制精度长度 n=(r1>=r2)?r1:r2; return ((arg1*m-arg2*m)/m).toFixed(n); }
相关 Java浮点数运算精度问题示例 在Java中,浮点数的运算可能会出现精度问题。这主要是因为Java使用IEEE 754标准来表示和处理浮点数。 以下是一个简单的例子,展示了浮点数运算可能存在的精度问题: 今天药忘吃喽~/ 2024年09月10日 15:54/ 0 赞/ 30 阅读
相关 使用 BigDecimal 进行浮点数运算 BigDecimal 介绍 `BigDecimal` 可以实现对浮点数的运算,不会造成精度丢失。 通常情况下,大部分需要浮点数精确运算结果的业务场景(比如涉及到钱的场景 今天药忘吃喽~/ 2024年04月07日 14:33/ 0 赞/ 39 阅读
相关 js中进行浮点数运算时容易出现精度问题 js中进行浮点数运算时容易出现精度问题 1、除法函数 //说明:javascript的除法结果会有误差,在两个浮点数相除的时候会比较明显。这个函数返回较为精确的除法 清疚/ 2024年03月27日 10:37/ 0 赞/ 42 阅读
相关 js 进行浮点型运算精度缺失 js 进行浮点型运算精度缺失 js字符串转数字 parseFloat() js 进行浮点型运算函数 <script type="text/j 本是古典 何须时尚/ 2024年02月18日 17:02/ 0 赞/ 20 阅读
相关 浮点数精度问题处理 [参考][Link 1] 由于浮点数在计算机中的存储问题,所以不论是float类型的数据还是double类型的数据都是有其精度的,取浮点数精度下限,float为6位,doub 逃离我推掉我的手/ 2022年08月10日 10:56/ 0 赞/ 202 阅读
相关 浮点数输入精度问题 输入: ![Image 1][]![Image 1][]![20150814202153285][] ![20150814202156072][] ![201508 你的名字/ 2022年08月04日 00:59/ 0 赞/ 203 阅读
相关 JS浮点数精度缺失问题 先看一个例子 alert(0.7+0.1);//输出0.7999999999999999 alert(0.6+0.2);//输出0.8 第二个正确,但第一个 曾经终败给现在/ 2022年04月11日 14:45/ 0 赞/ 249 阅读
相关 js浮点数计算时失去精度 在项目中计算商品价格的时候再次遇到js浮点数计算出现误差的问题,以前一碰到这个问题就用tofixed方法进行处理一下,这对于一个程序员来说是及其不严谨的。 何况用tofixe 川长思鸟来/ 2022年01月25日 22:25/ 0 赞/ 309 阅读
相关 JavaScript 浮点数运算的精度问题 问题描述 在 `JavaScript` 中整数和浮点数都属于 `Number` 数据类型,所有数字都是以 `64` 位浮点数形式储存,即便整数也是如此。 所以我们在打印 ╰半夏微凉°/ 2021年07月04日 21:43/ 0 赞/ 411 阅读
还没有评论,来说两句吧...