前端JS Float计算小数点误差解决方案

如果使用了对float的计算,无论如何处理都会出现过多的小数点对计算的精准对造成影响,增加一个解决办法:

应用函数对数据进行int处理.

Code:

function reckon(str, calculate, str2) { var times, m1, m2, num, b1, b2; m1 = str.toString().split('.')[1].length; m2 = str2 == '' ? calculate.toString().split('.')[1].length: str2.toString().split('.')[1].length; times = m1 > m2 ? M1: m2; times = Math.pow(10, times); b1 = parseInt(str * times); b2 = str2 == '' ? parseInt(calculate * times) : parseInt(str2 * times); switch (calculate) { case '+': num = b1 + b2; break; case '-': num = b1 - b2; break; case '*': num = b1 * b2; break; case '/': num = b1 / b2; break; case '%': num = b1 % b2; break; default: num = b1 + b2; } return parseFloat(num / times); }


函数应用方法:

例如var a =3 + 5;var a =reckon(3,'+',5);或var a = reckon(3,5);默认为加法;

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔...
    叶总韩阅读 10,543评论 0 41
  • 找到fullcalendar.js, 找到代码为 isRTL:false,这句话 输入以下几句 monthName...
    迷你小小白阅读 5,661评论 0 1
  • 第一章: JS简介 从当初简单的语言,变成了现在能够处理复杂计算和交互,拥有闭包、匿名函数, 甚至元编程等...
    LaBaby_阅读 5,627评论 0 6
  • 一、简单了解和基础知识 1.js引入方式 第一种:直接在body标签下面引入js文件或者直接在下面写js代码; 第...
    空谷悠阅读 3,290评论 0 2
  • 贪心算法 贪心算法总是作出在当前看来最好的选择。也就是说贪心算法并不从整体最优考虑,它所作出的选择只是在某种意义上...
    fredal阅读 13,059评论 3 52

友情链接更多精彩内容