首先写一个demo 重现问题,我使用的是一个js在线测试环境[打开]

改写displaynum()函数

function displaynum(){var num = 22.77;alert(num + 10);}

点击Show按钮 结果显示32.769999999996 出现了N多小数.

也并不是所有数字都会出现这种现象, 除了 22.99  2.777 , 好像这几个数字也没什么特殊.

查了一些资料, 一是JS浮点数计算的bug, 另一个是和计算机最终转换成二进制计算有关系, 但是为什么不是所有小数都会有这种现象, 目前我也不清楚, 有时间再去深入研究一下。

现在有两种解决方法, 第一种就是利用JS .toFixed(n) 方法, 直接获取n位小数, 个人觉得这种方法在数据精度上会有一些问题. 如果数据精度要求不高的话 可以使用. 第二种方法就是自己写js 运算方法.

以下是自定义加法函数, 使用此方法进行相加会避免上面问题。

function addNum(num1,num2){var sq1,sq2,m;try{sq1=num1.toString().split(".")[1].length;} catch(e){sq1=0;}try{sq2=num2.toString().split(".")[1].length;} catch(e){sq2=0;}m=Math.pow(10,Math.max(sq1,sq2));return ( num1 * m + num2 * m ) / m;}

当然简单一点也可以写成 alert((num * 3 + 10 * 3) /3); 这样也不会出现n多小数。

alert((num * 3 + 10 * 3) /3); 与 alert(num + 10); 这两种写法计算机在底层转换成二进制运算是有区别的, 或许这就是出现上述问题的原因

以上这篇js小数计算小数点后显示多位小数的实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

js小数运算出现多为小数问题_js小数计算小数点后显示多位小数的实现方法相关推荐

  1. 【js】小数点后保留两位小数

    小数点后保留两位小数 dicountPrice.toFixed(2)

  2. element-ui表格列金额显示两位小数

    对于金额的显示,大多情况下需要保留两位小数,比如下面的(表格采用 element-ui): 在vue.js中,对文本的处理通常是通过设置一系列的过滤器,过滤器可以用在两个地方:双花括号插值 和 v-b ...

  3. 负数显示红字html语言,需要将单元格内的负数显示为红色且不带负号显示两位小数的格式代码是下面哪一种A、 0.00;[红色...

    需要将单元格内的负数显示为红色且不带负号显示两位小数的格式代码是下面哪一种A. 0.00;[红色 更多相关问题 SPEC性能测试能比时钟频率更全面地反映计算机处理器.存储结构和编译器的性能.它有两种表 ...

  4. C# 小数点后保留两位小数

    C# 小数点后保留两位小数,四舍五入的函数及使用方法 1 Math.Round(45.367,2) //Returns 45.37 2 Math.Round(45.365,2) //Returns 4 ...

  5. sqlserver中,四舍五入之后,小数点后显示2位的sql文

    select   cast(round(12.5,2)   as   numeric(5,2)) 解释: round()函数,是四舍五入用,第一个参数是我们要被操作的数据,第二个参数是设置我们四舍五入 ...

  6. 小数点后保留2位小数的正则表达式

    Write By Monkeyfly 以下内容均为原创,如需转载请注明出处. 前提 今天同事问我,这个正则表达式是什么意思?(如下所示) ^(([1-9]{1}\\d*)|([0]{1}))(\\.( ...

  7. js小数运算出现多为小数问题_JS操作小数运算,结果莫名其妙出现多位小数问题...

    Number类型: Number类型是ECMAScript中最常用和最令人关注的类型了:这种类型使用IEEE754格式来表示整数和浮点数值(浮点数值在某些语言中也被成为双精度数值),为支持各种数据类型 ...

  8. js小数运算出现多为小数问题_js 数字加减乘除精度问题,解决小数点后多位小数...

    在javascript中,当你使用小数进行加减乘除运算时,你会发现,所得到的结果有时后面带有长长的一段小数,使运算变得复杂,并且影响计算结果.上网查询了一下原因,大致如下:在javascript中,带 ...

  9. vb只显示两位小数_【名师课堂】苏教数学五年级上3.1小数的意义

    微课视频第一课时 微课视频第二课时 电子课本 同步练习 参考答案 教学设计 小数的意义和读.写方法教材第30~32页的内容.1.使学生理解小数的意义.2.结合具体情境教学小数的意义,让学生初步认识小数 ...

最新文章

  1. 苹果官方 iOS Demo
  2. PCRE接口pcre_fullinfo混合子模式调用结果
  3. python合并txt文本_Python实现将目录中TXT合并成一个大TXT文件的方法
  4. java获取异常堆栈详情
  5. 大学计算机基础网络配置实验报告答案,大学计算机基础实验报告2.doc
  6. 暴跌1300亿,机械茅也扛不住了
  7. 小米POCO X3开启预热:支持33W闪充5160mAh大电池65分钟搞定
  8. Python中字符串反转的一个简单操作
  9. 关于 FROM tableA,tableB 和 tableA LEFT JOIN tableB on 的区别
  10. 伺服舵机匀加速和匀减速程序控制
  11. 计算机课程教学质量分析,课程教学质量分析报告.PDF
  12. Ubuntu桌面卡死解决办法
  13. 【动态规划的方法论】
  14. 盛迈坤电商:运营店铺需要怎么做
  15. 数据结构与算法——链式存储(链表)的插入及删除
  16. html 中的 css 的强制换行与不换行文本
  17. php的表达爱意的一句代码,一句表达爱意的古词 最能表达爱的一句话
  18. Cesium交流群链接
  19. 聚类篇——(四)有序样品聚类
  20. [翻译]现代java开发指南 第二部分

热门文章

  1. linux内核的配置过程,linux内核的配置机制及其编译过程
  2. 差分进化算法python_差分进化算法DE-python实现
  3. div 位于屏幕正中间_折叠屏已经不新鲜了,明天你可能会用上“伸缩屏幕”!...
  4. 如何下载python3.6版本-python最新版本免费下载-python 3.6.3正式版下载__飞翔下载
  5. Spring之事件监听
  6. maven构建MyBatis项目
  7. 函数声明和函数表达式
  8. fragment的懒加载
  9. 基于JAVA+SpringMVC+Mybatis+MYSQL的手表销售系统
  10. 基于JAVA+SpringMVC+MYSQL的求职招聘管理系统