Number类型

Number类型

一、相关概念

1.定义

  1. Number是与数字值对应的应用类型
  2. 创建Number对象,可以在调用Number构造函数时向其中传递相应的数值
  3. Number类型也重写了valueOf()toLocaleString()toString()方法。重写后的valueOf()方法返回对象表示的基本类型的值,另外两个方法则返回字符串形式的数值。
  4. 可以为toString()方法传递一个表示基数的参数,告诉它返回几进制数值的字符串形式
var nnumberObject=new Number(10); 
var num=10;
alert(num.toString());//"10"
alert(num.toString(2));//"1010"
alert(num.toString(8));//"12"
alert(num.toString(10));//"10"
alert(num.toString(16));//"a"

二、格式化数值方法

1.toFixed()

  1. toFixed()方法会按照指定的小数位返回数值的字符串表示
  2. 如果数值本身包含的小数位比指定的还多,那么接近指定的最大小数位的值就会舍入
  3. 能够自动舍入的特性,使得toFixed()方法很适合处理货币值
  4. 不同的浏览器给这个方法设定的舍入规则可能会有所不同。在给toFixed()传入0的情况下,IE 8及之前版本不能正确舍入范围在{(-0.94,-0.5],[0.5,0.94)}之间的值。对于这个范围内的值,IE会返回0,而不是-1或1;其他浏览器都能返回正确的值。IE 9修复了这个问题
var num=10;
alert(num.toFixed(2));//"10.00"

var num=10.005;
alert(num.toFixed(2));//"10.01"

2.toExponential()

  1. toExponential()方法返回以指数表示法(也称e表示法)表示的数值的字符串形式
  2. toExponential()也接受一个参数,而且该参数同样也是指定输出结果中的小数位数
var num=10;
alert(num.toExponential(1));//"1.0e+1"
//以上代码输出了"1.0e+1";不过,这么小的数值一般不必使用e表示法
3.toPrecision()
  1. toPrecision()方法可以以合适的格式表示某个数值的最合适格式
  2. 对于一个数值来说,toPrecision()方法可能会返回固定大小(fixed)格式,也可能返回指数格式;具体规则看哪种格式符合
  3. 这个方法接受一个参数,即表示数值的所有数字的位数(不包括指数部分)
  4. toPrecision()会根据要处理的数值决定到底是调用toFixed()还是调用toExponential(),而这三个方法都可以通过向上或向下舍入,做到以最准确的形式表示带有正确小数位的值
var num=99;
alert(num.toPrecision(1));//"1e+2"
alert(num.toPrecision(2));//"99"
alert(num.toPrecision(3));//"99.0"

三、补充

  1. 不建议直接实例化Number类型,原因与显示创建Boolean对象一样
  2. 在使用typeofinstanceof操作符测试基本类型数值与引用类型数值时,得到的结果完全不同
  3. 在使用typeof操作符测试基本类型数值时,始终会返回”number“,而在测试Number对象时,则会返回”Object
  4. Number对象是Number类型的实例,而基本类型的数值则不是
var numberObject=new Number(10);
var numberValue=10;
alert(typeof numberObject);//"object"
alert(typeof numberValue);//"number"
alert(numberObject instanceof Number);//true
alert(numberObject instanceof Number);//false

猜你喜欢

转载自blog.csdn.net/qq_41218152/article/details/82108786