• JavaScript带小数点的运算出现多位小数点的问题及解决办法


      进日,应项目开发需求,需在前台用JS写一个表单中的一列数据的运算,如下图所示↓↓↓↓,

    如果分配比例的总和超过100%,系统做出相对应的提示或者警告,

      

      这列数据的实际数据是0.2,0.1,0.15等这样的,只是显示的时候是用20%,10%,15%这样显示的,这列数据我做加法运算的时候,

    出现了超过100%的情况,也就是超过了1,我以为这些个数字有问题,先看了一遍数字没问题,然后我用windows自带的计算器算了一遍,是1;随后我拿出了我的手机算了一遍,是1;在用pl/SQL developer算了一遍,是1;用Java程序算了一遍,是1;最后我用windows下的命令行模式算了一遍,还是1;我开始怀疑这结果并不是这数据导致的,难道是js本身存在的毛病?alert出来的结果让我的大吃一惊,怎么会有这样的东西存在,结果是:1.00000001,我忘记是几个零,小数点后面大概就是这么一串东西,让人很头疼的东西;究其原因,原来js本身就存在这样一个问题,是底层导致的,底层基础决定上层建筑,多么痛的领悟,关于底层什么样,本人这里就不在做多余的赘述了,有兴趣的朋友可以多去了解了解。

      对于这个问题怎么处理呢,方法呢也是很多,本人不才,实践了一二,希望对遇到此问题的朋友能有帮助:

    1、如果的你问题和我遇到的差不多,结果是 num = 1.0000001,类似这样的,直接对结果处理,取自己想要的部分,就直接 num.toFixed(2);

    1 var num = 0.00;
    2 num.toFixed(2);

    2、如果你需要在计算的时候处理,得到一个没毛病的想要的结果,比如 1.00这样的,在计算的过程中处理,那就(num1 * m+ num2 * m) / m这样处理,这里的1000取决于你自己num1和num2的小数点后的位数,自己可以试试,多试

     
    1 var num1 = 0.324;
    2 var num2 = 0.232;
     num1*1000 + num2*1000;

    肯定还有高级的方法,或者是更优的方法,希望评论,我也想涨姿势   u·W·u

  • 相关阅读:
    sql优化
    mysql_存储过程_后一行减去前一行
    python基础笔记
    atom使用markdown
    tensorboard遇到的坑
    WordPaster-Firefox浏览器控件安装方法
    WordPaster.exe安装教程
    Web大文件上传控件-bug修复-Xproer.HttpUploader6
    Web大文件下载控件更新-Xproer.HttpDownloader
    Web大文件上传控件-asp.net-bug修复-Xproer.HttpUploader6.2
  • 原文地址:https://www.cnblogs.com/lishuangyun/p/10818705.html
Copyright © 2020-2023  润新知