`
deng131
  • 浏览: 675366 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

JavaScript小数四舍五入toFixed

阅读更多
虽然js中Number对象自带了toFixed方法
2.3567.toFixed(2)

但由于用户使用不同浏览器,并且这些浏览器js库也存在些差异,所以表现也不同,大多数时候是在FF下开发,却忽略了IE等浏览器的兼容问题。
原生toFixed方法555.555.toFixed(2) //输出555.55,IE和FF下执行结果不同

借用网上实现代码:
function ForDight(Dight,How){
  //必须是数字或浮点数。如3.56 、 789
  //1:先将小数向右移动How位。
  //2:将移动后结果四舍五入。
  //3:先将小数向左移动How位。
  Dight = Math.round (Dight*Math.pow(10,How))/Math.pow(10,How);
  return Dight;
}
console.info(ForDight(12345.67890,2)); 

另外一种实现方法:
Number.prototype.toFixed = function(pos){
  var p = pos || 2; //必须是数字或浮点数,默认精确2位
  return Math.round(Number(this)*Math.pow(10,p))/Math.pow(10,p);
}
console.info((12345.67890).toFixed());

但还是存在问题
555.555.toFixed(2)
输出结果555.55。

比较好的实现方法:
Number.prototype.toFixed=function(len){
    var add = 0,s,temp;
    var s1 = this + "";
    var start = s1.indexOf(".");
    //必须是数字或浮点数,判断移动后的前一位是否大于5,大于5加1。
    if(s1.substr(start+len+1,1)>=5) add=1;
    var temp = Math.pow(10,len);
    s = Math.floor(this * temp) + add; // Math.ceil(this * temp)
    return s/temp;
}
555.555.toFixed(2) //输出555.56

优化版:
Number.prototype.toFixed=function(len){
    var temp = Math.pow(10,len);
    var s = Math.ceil(this * temp)
    return s/temp;
}

555.555.toFixed(2) //输出555.56
1
2
分享到:
评论

相关推荐

    Javascript四舍五入(二)源码

    ### JavaScript 四舍五入方法详解 #### 一、引言 在JavaScript中,处理浮点数时常常会遇到精度问题。特别是在进行数值计算时,如何有效地对浮点数进行四舍五入处理是非常重要的。本文将详细介绍几种常见的实现四舍...

    C#.NET,JAVASCRIPT数字进行四舍五入保留两位小数

    这里我们将深入探讨C#.NET和JavaScript中如何实现数字四舍五入并保留两位小数的方法。 首先,让我们看看C#.NET中的解决方案。在C#中,我们可以使用`Math.Round`方法来实现四舍五入。这个方法接受一个double类型的值...

    js四舍五入-保留两位小数

    在JavaScript中,最简单的方式是使用`toFixed()`方法来实现四舍五入并保留两位小数的功能。`toFixed()`方法可以将数字转换为字符串,并且保留指定位数的小数。 **示例代码**: ```javascript let num = 123.4567; ...

    JS处理数据四舍五入(tofixed与round的区别详解)

    首先,toFixed()方法属于Number对象的一个方法,它可以将数字四舍五入到指定的小数位数。调用方式是将数字作为参数传递给toFixed()方法。例如,如果我们有一个数字num,并希望保留两位小数,可以这样调用:num....

    javascript小数四舍五入多种方法实现

    JavaScript中的小数四舍五入是编程中常见的需求,特别是在处理金融、计算或者显示精度问题时。以下是一些JavaScript实现小数四舍五入的方法: 1. **最基础的Math.round()方法** 这是最常见也是最基础的四舍五入...

    round-tofixed:正确将JavaScript数字四舍五入到固定的小数位数

    圆角固定的正确将JavaScript数字四舍五入到固定的小数位数概述round-tofixed解决了在JavaScript中舍入十进制数字时的常见问题: Math.round()内置函数只能四舍五入为整数常用的十进制数字舍入方法会产生错误的结果...

    JS使用tofixed与round处理数据四舍五入的区别

    在JavaScript编程中,处理浮点数四舍五入的方法主要有两种,即Number对象的toFixed()方法和Math对象的round()方法。这两种方法虽然都能实现四舍五入的效果,但它们在四舍五入的规则和应用场景上存在一定的差异。 ...

    javascript进行四舍五入方法汇总

    原生 javascript 中四舍五入的函数 toFixed(n) , n为要保留的小数位数。 (0<= n <=20) 代码如下: var num=1.0999; console.log(num.toFixed(20)); http://jsfiddle.net/14x0vhu6/ 输出值不是预想的1.0999...

    Javascript中 toFixed四舍六入方法

    在JavaScript中,`toFixed()` 方法是用来处理浮点数精度问题的一种常见方式,它主要用于将一个数字转换为指定小数位数的字符串,并按照四舍五入的规则进行处理。然而,这里提到的是“银行家舍入”规则,实际上,`...

    JS保留两位小数 四舍五入函数的小例子

    在JavaScript中,对数字进行四舍五入操作以保留特定位数的小数是非常常见的需求,尤其是在数据展示或者计算中。`toFixed()`函数是JavaScript提供的一个内置方法,专门用于实现这个功能。下面我们将深入探讨`toFixed...

    javascript 使用toFixed保留两位小数.pdf

    然后,我们调用`toFixed(2)`,这将`num`四舍五入到最接近的两位小数,即2.45。由于`toFixed()`返回的是一个字符串,所以当我们使用`typeof num`检查其类型时,会得到"string"的结果。这意味着如果你想进行数学运算,...

    javascript四舍五入函数代码分享(保留后几位)

    在JavaScript中,四舍五入是一项常见的操作,用于对数字进行精确的精度处理。这篇分享主要探讨了如何使用自定义函数实现JavaScript中的四舍五入功能,并且能够指定保留小数点后的位数。 首先,我们需要理解...

    JS保留小数点(四舍五入、四舍六入)实现思路及实例

    这里涉及到的主要知识点是JavaScript中浮点数的四舍五入和特定格式化方法,以及如何利用JavaScript提供的功能实现这些常见的需求。 首先,我们需要了解JavaScript中的基本数学运算和类型转换。在JavaScript中,数字...

    vue 保留两位小数 不能直接用toFixed(2) 的解决

    `toFixed()`方法是JavaScript中的一个方法,用于将数字转换为字符串,并保留指定位数的小数。例如,`123.456.toFixed(2)`会返回`"123.46"`。但是,在Vue中,直接在模板中使用`toFixed(2)`可能会触发Vue的计算属性或...

    JS用最简单的方法实现四舍五入

    首先,`toFixed()`方法是JavaScript中用来四舍五入数字并保留指定小数位数的方法。它的基本语法是`number.toFixed(digits)`,其中`digits`参数指定了要保留的小数位数。例如,如果你有一个数字`Num`,想要保留两位...

    js浮点数保留两位小数点示例代码(四舍五入)

    另一方面,JavaScript提供了`toFixed()`方法,可以更加简便地实现四舍五入并保留固定小数位。使用方法如下: - 直接在浮点数变量上使用`toFixed(2)`,即可得到保留两位小数的字符串。 - `toFixed()`方法接受一个...

    Javascript中toFixed计算错误(依赖银行家舍入法的缺陷)解决方法

    `toFixed()` 方法按照“银行家舍入”法则进行四舍五入。银行家舍入法是一种特殊的舍入策略,旨在避免舍入误差积累。它的规则是: 1. 当需要舍弃的数字小于4时,直接舍去。 2. 当需要舍弃的数字大于等于6时,向前一...

Global site tag (gtag.js) - Google Analytics