JavaScript Number对象
Number 对象是原始数值的包装对象。
JavaScript 只有一种数字类型。
可以使用也可以不使用小数点来书写数字。
所有 JavaScript 数字均为 64 位。
精度
整数(不使用小数点或指数计数法)最多为 15 位。小数的最大位数是 17,但是浮点运算并不总是 100% 准确。
能表示最大值为±1.7976931348623157 x 10308,最小值为±5 x 10 -324。 数字可以是数字或者对象
数字可以私有数据进行初始化,就像 x = 123;
JavaScript 数字对象初始化数据, var y = new Number(123);
对象属性
属性 | 描述 |
constructor | 返回对创建此对象的Number函数的引用。 |
prototype | 允许你有能力向对象添加属性和方法。 |
MAX_VALUE | 可表示的最大数。 |
MIN_VALUE | 可表示的最小数。 |
NEGATIVE_INFINITY | 负无穷大,溢出时返回该值。 |
NaN | 非数字值。 |
POSITIVE_INFINITY | 正无穷大,溢出时返回该值。 |
对象方法
方法 | 描述 |
toExponential() |
把对象的值转换为指数计数法。 |
toFixed() | 把数字转换为字符串,结果的小数点后有指定的位数的数字。 |
toPrecision() | 把数字格式为指定的长度 |
toString() | 把数字转换为字符串,使用指定的基数。 |
valueOf() | 返回一个Number对象有的基本数据值。 |
测试代码
var num1 = 5.123456789; var num2 = 98765.4321; var num3 = 98.7654321; var num4 = 987654321; var num5 = 100; document.write('<h3>' + 'num1 = ' + num1 + '</h3>'); document.write('<h3>' + 'num2 = ' + num2 + '</h3>'); document.write('<h3>' + 'num3 = ' + num3 + '</h3>'); document.write('<h3>' + 'num4 = ' + num4 + '</h3>'); document.write('<h3>' + 'num5 = ' + num5 + '</h3>'); //函数toExponential([x]), 可把对象的值转换成指数计数法, x = 0 - 20。 document.write('<p>' + 'num1.toExponential(3) = ' + num1.toExponential(3) + '<p>'); document.write('<p>' + 'num1.toExponential(15) = ' + num1.toExponential(15) + '<p>'); //函数toFixed(x),可把 Number 四舍五入为指定小数位数的数字, x = 0 - 20。 document.write('<p>' + 'num1.toFixed(3) = ' + num1.toFixed(3) + '</p>'); document.write('<p>' + 'num1.toFixed(5) = ' + num1.toFixed(5) + '</p>'); document.write('<p>' + 'num1.toFixed(15) = ' + num1.toFixed(15) + '</p>'); //函数toPrecision(x),可在对象的值超出指定位数时将其转换为指数计数法, x = 1 - 21。 document.write('<p>' + 'num2.toPrecision(6) = ' + num2.toPrecision(6) + '</p>'); document.write('<p>' + 'num3.toPrecision(6) = ' + num3.toPrecision(6) + '</p>'); document.write('<p>' + 'num4.toPrecision(6) = ' + num4.toPrecision(6) + '</p>'); document.write('<p>' + 'num2.toPrecision() = ' + num2.toPrecision() + '</p>'); document.write('<p>' + 'num2.toPrecision(21) = ' + num2.toPrecision(21) + '</p>'); document.write('<p>' + 'num2.toPrecision(20) = ' + num2.toPrecision(20) + '</p>'); document.write('<p>' + 'num4.toPrecision(21) = ' + num4.toPrecision(21) + '</p>'); //函数toString([radix]),把数字转换成字符串, radix = 2 - 36。 document.write('<p>' + 'num5.toString() = ' + num5.toString() + '</p>'); document.write('<p>' + 'num5.toString(2) = ' + num5.toString(2) + '</p>'); document.write('<p>' + 'num5.toString(8) = ' + num5.toString(8) + '</p>'); document.write('<p>' + 'num5.toString(16) = ' + num5.toString(16) + '</p>'); document.write('<p>' + 'num5.toString(36) = ' + num5.toString(36) + '</p>');
结束整理
- 整数(不使用小数点或指数计数法)最多为 15 位。
- 小数的最大位数是 17,但是浮点运算并不总是 100% 准确。
- 前缀为0,则把数值常量解释为八进制,前缀为0x,则解释为十六进制。Number对象的属性,除了继承的constructor和prototype外,其他的都只能通过Number自身来引用,创建的Number对象的属性无意义。
toPrecistion()
- 指定长度小于数字原长度, 有小数位先去除, 无小数位后变成指数计数。
- 指定长度大于数字原长度, 补小数位, 原数字为整数补位后无偏差,原数字为有小数时,由于是浮点运算并不总是100%准确。