文档章节

JS toFixed 四舍五入问题

tuzibuluo
 tuzibuluo
发布于 2014/01/24 14:31
字数 298
阅读 1331
收藏 4

   最近在对JS浮点数做运算的时候,涉及到结果的四舍五入时,利用JS的toFixed(n),对运算结果进行四舍五入,突然间相同的数据在IE8和IE9得出的结果不一致,在排除和程序逻辑问题后,把问题定位在了不同浏览器对toFixed结果的差异上,然后找到了谷老师发现不同的浏览器得到的结果不一致,即使相同浏览器的不同版本toFixed得到的结果页不一致。

  想到了一个解决方法,不知可否,主要是通过提升小数至整数,就近取整后再恢复为小数,代码如下

function round(num,n){
    var   dd=1;  
    var   tempnum;  
    for(i=0;i<n;i++){  
        dd*=10;  
    }  
    tempnum=num*dd;  
    tempnum=Math.round(tempnum);
    return formatnumber((tempnum/dd).toFixed(n),n);  
}

//对小数格式化,四舍五入,不足补零
function formatnumber(value, num){
    var a, b, c, i;
    a = value.toString();
    b = a.indexOf(".");
    c = a.length;
    if (num == 0){
        if (b != -1){
            a = a.substring(0, b);
        }
    } else{
        if (b == -1){
            a = a + ".";
            for (i = 1; i <= num; i++){
                a = a + "0";
            }
        } else{
            a = a.substring(0, b + num + 1);
            for (i = c; i <= b + num; i++){
                a = a + "0";
            }
        }
    }
    return a;
}


© 著作权归作者所有

tuzibuluo
粉丝 3
博文 14
码字总数 9603
作品 0
香港
私信 提问
JS保留两位小数 四舍五入函数

JS保留两位小数 四舍五入函数的小例子。 js 四舍五入函数 toFixed(),里面的参数 就是保留小数的位数。 <script language="javascript"> document.write("<h1>JS保留两位小数例子</h1><br>......

mysoftsky
2014/03/29
3.4K
0
JS四则运算与四舍五入精度问题及解决方案

一、Javascript精度问题业务背景 JS中 0.1+0.2 = 0.3000000000000004的问题,在很多业务场景里都是一个令人头痛的问题。尤其是在大型的电商企业,货币基金股票行业的网页中,JS四则运算和toF...

StevenLikeWatermelon
2018/11/06
0
0
JavaScript数字精度丢失问题总结

本文分为三个部分: 1、JS 数字精度丢失的一些典型问题(前端遇小数计算概率大,要有这个精度丢失的意识) 2、JS 数字精度丢失的原因(计算机用二进制存储数据,由于存储位置的限制有时会存在...

阿K1225
07/25
55
0
JavaScript 浮点数运算的精度问题

在 JavaScript 中整数和浮点数都属于 数据类型,所有数字都是以 64 位浮点数形式储存,即便整数也是如此。 所以我们在打印 这样的浮点数的结果是 而非 。在一些特殊的数值表示中,例如金额,...

xiaogg
01/07
54
0
js小数点保留时的四舍五入问题的处理

需求:要求保留两位小数,四舍五入 js的toFixed方法保留小数时的处理是4、5舍6入 使用Math.round(x)来进行数值转换,把一个数字数字舍入为最接近的整数 为什么要乘以100除以10呢? 因为js涉及...

jia林
03/21
0
0

没有更多内容

加载失败,请刷新页面

加载更多

PostgreSQL参数search_path影响及作用

search_path稍微熟悉PG就会用到,用法这里就不必讲,本篇主要讲它在程序里怎样处理。 1、GUC参数定义 这是个 config_string 参数 {{"search_path", PGC_USERSET, CLIENT_CONN_STATEMENT,...

有理想的猪
今天
9
0
Qt程序各个平台打包发布及安装程序大全

本文链接:https://blog.csdn.net/zhengtianzuo06/article/details/78468111 通用: 1.准备图标 图标可以直接使用一般格式的图片制作, 比如jpg, png等 推荐使用Photoshop制作原始图 推荐使用I...

shzwork
今天
12
0
springboot2.0 maven打包分离lib,resources

springboot将工程打包成jar包后,会出现获取classpath下的文件出现测试环境正常而生产环境文件找不到的问题,这是因为 1、在调试过程中,文件是真实存在于磁盘的某个目录。此时通过获取文件路...

陈俊凯
今天
22
0
BootStrap

一、BootStrap 简洁、直观、强悍的前端开发框架,让web开发更加迅速、简单 中文镜像网站:http://www.bootcss.com 用于开发响应式布局、移动设备优先的WEB项目 1、使用boot 创建文件夹,在文...

wytao1995
今天
10
0
小知识:讲述Linux命令别名与资源文件的区别

别名 别名是命令的快捷方式。为那些需要经常执行,但需要很长时间输入的长命令创建快捷方式很有用。语法是: alias ppp='ping www.baidu.com' 它们并不总是用来缩短长命令。重要的是,你将它...

老孟的Linux私房菜
今天
26
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部