toFixed方法重写,toFixed四舍五入在数值很小时的精度问题

By | 01月08日
Advertisement

先上重写代码:

Number.prototype.toFixed = function(s) {
            var changenum = (parseInt(this * Math.pow(10, s) + 0.5) / Math.pow(10, s)).toString();
            index = changenum.indexOf(".");
            if (index < 0 && s > 0) {
                changenum = changenum + ".";
                for (i = 0; i < s; i++) {
                    changenum = changenum + "0";
                }

            } else {
                index = changenum.length - index;
                for (i = 0; i < (s - index) + 1; i++) {
                    changenum = changenum + "0";
                }

            }

            return changenum;
        }

问题环境:1、 在对数值0.005进行四舍五入保留2为数字时,在ie8会发现0.005.toFixed(2)=0.00

2、在toFixed使用小数点后为0的数字都被忽略, 没有保留0作为小数位

相关文章:

js处理数字保留2位小数,强制保留2位小数不够补上.00

数字格式化,格式数字保留2位小数点,格式数字自定义保留n位小数点

js数字金额大写转换

Similar Posts:

  • 四舍五入:JavaScript toFixed() 方法 和 Math.Round 方法比较

    toFixed() 方法可把 Number 四舍五入为指定小数位数的数字. Math.Round (vs2005) Math.Round(3.44, 1); //Returns 3.4. Math.Round(3.45, 1); //Returns 3.4. Math.Round(3.46, 1); //Returns 3.5. 在工程技术.金融和科学领域,我们往往认为将一个小数圆整到距离它最近的偶数(而并非总是将它向上圆整)更加精确,即我们在此所说的"四舍六入"法. Math.Rou

  • Java中的方法重载(method overloading)和方法重写(method Overriding)的区别

    方法重载: 方法重载是Java实现多态性的一种方式.当一个重载方法被调用时,Java用参数的类型和(或)数量来表明实际调用的重载方 法的版本.因此,每个重载方法的参数的类型和(或)数量必须是不同的.虽然每个重载方法可以有不同的返回类型,但返回类型并不足以区分所使用的是哪个方法.当Java调用一个重载方法时,参数与调用参数匹配的方法被执行.无法也不能以返回型别作为重载函数的区分标准 比如: class OverloadDemo { void test() { System.out.println(

  • Effective C# Item20:明辨接口实现和虚方法重写

    接口实现和虚方法重写看上去很像,它们都可以对定义在另一个类型中的方法进行重新实现,但是,这两种方式有很大的区别. 我们来看下面的代码,首先定义一个接口. public interface InterfaceA { void MethodA(); } 我们可以采取以下三种方式来实现上述接口InterfaceA. /// <summary> /// the first way to implement interface, and this is the most common way. ///

  • 继承-方法重写

    在子类中,可以对父类的方法进行重写,称为方法重写或方法覆盖 方法重写必须满足以下几个条件: 1.重写方法和被重写方法必须具有相同的方法名 2.重写方法和被重写方法必须具有相同的参数列表 3.重写方法的返回值类型必须和被重写方法的返回值相同 4.重写方法不能缩小被重写方法的访问权限 重写是子类和父类之间同名方法,要求方法名相同,参数列表相同,返回值类型相同 例:宠物类下有狗狗类和小鸟类,其中宠物类定义了看病的方法,子类分别重写了看病的方法 package com.cn.jicheng3; /* *

  • 方法重写的演示

    package oo.day05; //方法重写的演示 public class OverrideDemo { public static void main(String[] args) { } } class Aoo{ void show(){} double say(){return 0.0;} Aoo get(){return null;} Boo test(){return null;} } class Boo extends Aoo{ void show(){} //void时必须相

  • 浅谈方法重写 super

    自己梳理整理一下留作以后回顾 1.方法重写(Override),也可称为方法覆盖,是一种子类包含与父类同名方法的现象. 2.规则:"两同两小一大"规则.①"两同" 即方法名相同.形参列表相同. ②"两小" 子类方法返回值类型应比父类方法返回值类型更小(返回值类型必须是父子关系才行,基本类型之间没有父子关系)或相等: 子类方法声明抛出的异常类应比父类方法声明抛出的异常类更小或相等. ③"一大" 子类方法的访问权限应比父类方法的访

  • 方法重写以及与方法重载的却别,super和this关键字的区别

    方法重写概述 方法重写:子类中出现了和父类中方法声明一模一样的方法. 方法重载: 本类中出现的方法名一样,参数列表不同的方法.与返回值无关. 子类对象调用方法的时候: 先找子类本身,再找父类. 方法重写的应用: 当子类需要父类的功能,而功能主体子类有自己特有内容时,可以重写父类中的方法. 这样,即沿袭了父类的功能,又定义了子类特有的内容. 案例: A:定义一个手机类. B:通过研究,我发明了一个新手机,这个手机的作用是在打完电话后,可以听天气预报. 按照我们基本的设计,我们把代码给写出来了. 但

  • 方法重写(override)

    方法重写 相同方法名,参数列表,返回类型: 重写方法不能比被重写的方法更严格的权限.

  • 方法重写和方法重载有什么区别?

    方法重载(overloading method) 是在一个类里面,方法名字相同,而参数不同.返回类型呢?可以相同也可以不同. 方法重写(overiding method) 子类不想原封不动地继承父类的方法,而是想作一定的修改,这就需要采用方法的重写.方法重写又称方法覆盖. 方法重载:是让类以统一的方式处理不同类型数据的一种手段.Java的方法重载,就是在类中可以创建多个方法,它们具有相同的名字,但具有不同的参数和不同的定义.调用方法时通过传递给它们的不同个数和类型的参数来决定具体使用哪个方法,

  • Java中方法重写与方法重载的区别

    地点不一样:方法重载发生在同一个类中:方法重写发生在父类(基类)和子类之间: 形式不一样:方法重载要求重载的方法之间是方法名和返回类型一致,并且参数不一样(参数个数或参数类型不一样):方法重写要求重写的方法必须方法名.返回类型和参数都一样: 作用不一样:方法重载是为了方便调用者使用(可以根据实参的具体情况自动匹配对应的方法):方法重写是因为子类对父类继承过来的方法不满意,通过重写实现更符合子类自己实际情况的方法.

Tags: