创建Number对象:
var myNum = new Number(value);
var myNum = Num(value);
var myNum = value;//必要时会转换成Number对象,如myNum.toString()先转换,再调用。
var myNum = Number.MAX_VALUE;
Number对象的属性
- Max_VALUE:可表示的最大的数
- MIN_VALUE:可表示的最小的数
- NaN:非数字值
- NEGATIVE_INFINITY:负无穷大,溢出值
- POSITIVE_INFINITY:整无穷大,溢出值
- constructor
- prototype
NUmber对象的方法
- toString([radix])
把一个Number对象转换为一个字符串,并返回结果。radix表示数字基数,2~36,默认为10,常用的是2,10,16。 - toLocalString()
把一个Number对象转换为本地格式字符串并返回。根据本地格式,可能会影响到小数点位数或千分位分隔符 - toFixed([num])
把Number对象四舍五入为指定小数位数(num位)的数值并返回字符串形式,num默认为0,num有上限。为达到num位小数,会进行舍入,或者用0补足。 - toExponential([num]):1.34e+4
把Number对象转换为num位小数的指数计数法表示并返回字符串形式,num默认为Number对象的长度,num有上限,为达到num位小数,会进行舍入或者用0补足。 - toPrecision()
把Number对象四舍五入为指定位数(num位)的数值并返回字符串形式,num默认为Number对象的长度,num有上限。num大于等于Number对象整数部分的长度,采用定点计数法,否则采用指数计数法。为达到num位数,会进行舍入,或者用0补足。 - valueOf()
注意:
- 关于浮点数运算,会因数值在计算机内存储的原因,涉及到精度问题。比如:
1 var num1 = 0.1;//转换成2进制,是无限循环 2 var num2 = 0.2;//转换成2进制,也是无限循环 3 writeLine(num1+num2);//0.30000000000000004
如果只需要精确到n为有效小数,可以扩展Math,并调用,可简单实现精度控制:
1 Math.formatFloat = function(f, digit) { 2 var m = Math.pow(10, digit); 3 return parseInt(f * m, 10) / m; 4 }
- 关于浮点数运算,会因数值在计算机内存储的原因,涉及到精度问题。比如:
有一篇文章讲解到关于精度的问题