最近做一个支付的项目需要做个计算器,所以发现了一个问题. 比如: 0.03/0.00003=999.9999999999999 0.0003*0.3=0.000029999999999999997 0.1+0.2=0.30000000000000004 等... 后面查了一下发现原因是: 浮点数值的最高进度是17位小数,但在进行运算的时候其精确度却远远不如整数:整数在进行运算的时候都会转成10进制: 而Java和JavaScript中计算小数运算时,都会先将十进制的小数换算到对应的二进制,一部分…
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>jquery中的ajax</title> <script type="text/javascript" src="js/jquery-1.7.1.min.js"></script> <style type="text/…
1.问题: 平时写的代码中会出现这种情况,parseFloat(11.3-10.1) 运行的结果依然是1.200000000000001 代码示例: var arr = [0.0111,11.002,0.3,1.5,1.61] arr.forEach(item =>{ total += item }) console.log(total) 返回的结果---  14.423100000000002,这种情况就不合常理. 2.解决方案: 这里有一种可行的解决方法,应用到Math中的一些浮点应用的函数…
/** * 加法运算,避免数据相加小数点后产生多位数和计算精度损失. * * @param num1加数1 | num2加数2 */ function numAdd(num1, num2) { var baseNum, baseNum1, baseNum2; try { baseNum1 = num1.toString().split(".")[1].length; } catch (e) { baseNum1 = 0; } try { baseNum2 = num2.toString…
解决方法思路:将小数化成整数后再作运算.具体代码如下:  /*** 加法运算,避免数据相加小数点后产生多位数和计算精度损失.** @param num1加数1 | num2加数2*/function numAdd(num1, num2) {   var baseNum, baseNum1, baseNum2;   try {       baseNum1 = num1.toString().split(".")[1].length;   } catch (e) {       base…
在用js计算0.07*100时候竟然=7.000000000000001 关于js失精算法你都遇到哪些,让我们一起来细数一下吧 console.log(0.07*100); // 7.000000000000001 console.log(0.1+0.2); // 0.30000000000000004 事实上,0.1 + 0.2 这这样的 0.1000000000000000055511151231257827021181583404541015625 + 0.2000000000000000…
/** * 数组相减的方法 * @param {Array} a * @param {Array} b */ function arrSubtraction(a, b) { if (!a || !b || Object.prototype.toString.call(a) !== '[object Array]' || Object.prototype.toString.call(b) !== '[object Array]') { console.error('arrSubtraction()…
项目背景是用eharts 渲染数据,其中Y 轴的 刻度尺间隔用 interval,代码中如下: yAxis: [ { type : 'value', position:'left', min:minV, max:maxV, // splitNumber:5, interval:interVal, axisLine:{ lineStyle:{ color:'#fff' } }, axisLabel:{ show:true, textStyle:{ color:'#6B7D97', fontSize…
取整数 Math.round() 小数点 (10/3).toFixed(2)…
平常总会遇到需要算两个日期之间是多少天,以下是使用JavaScript算时间差多少天的: // 给日期类对象添加日期差方法,返回日期与diff参数日期的时间差,单位为天 Date.prototype.diff = function(date){ return (this.getTime() - date.getTime())/(24 * 60 * 60 * 1000); } // 构造两个日期 var now = new Date('2015/03/01 12:43:45'); //也可以不要后…