79 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			79 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| ---
 | ||
| title: Numbers
 | ||
| localeTitle: 数字
 | ||
| ---
 | ||
| ## 数字
 | ||
| 
 | ||
| JavaScript `number`的实现基于`IEEE 754`标准,通常称为“浮点”。
 | ||
| 
 | ||
| [IEEE 754维基百科链接](https://en.wikipedia.org/wiki/IEEE_754) [IEEE 754双精度浮点可视化](http://bartaz.github.io/ieee754-visualization/)
 | ||
| 
 | ||
| 数字文字通常表示为`base-10`十进制文字。
 | ||
| 
 | ||
| ```javascript
 | ||
| var foo = 47; 
 | ||
|  var bar = 47.9; 
 | ||
| ```
 | ||
| 
 | ||
| 十进制值的前导部分(如果为`0` )是可选的:
 | ||
| 
 | ||
| ```javascript
 | ||
| var same = 0.47; 
 | ||
|  var stillSame = .47; 
 | ||
| ```
 | ||
| 
 | ||
| 同样,后面的十进制值的尾部(小数) `.` ,如果为`0` ,则是可选的:
 | ||
| 
 | ||
| ```javascript
 | ||
| var a = 47.0; 
 | ||
|  var b = 47.; 
 | ||
| ```
 | ||
| 
 | ||
| 默认情况下,大多数数字将输出为`base-10`小数,并删除尾随小数`0` 。所以:
 | ||
| 
 | ||
| ```javascript
 | ||
| var foo = 47.300; 
 | ||
|  var bar = 47.0; 
 | ||
|  
 | ||
|  foo; // 47.3 
 | ||
|  bar; // 47 
 | ||
| ```
 | ||
| 
 | ||
| 非常大或非常小的`numbers`可写为:
 | ||
| 
 | ||
| ```javascript
 | ||
| var foo = 47e8; // 4700000000 
 | ||
|  var baz = 47e-8; // 00.00000047 
 | ||
| ```
 | ||
| 
 | ||
| `toExponential`方法可用于将`number`转换为`exponential notation` 。
 | ||
| 
 | ||
| ```javascript
 | ||
| var foo = 47e8; 
 | ||
|  foo;  // 4700000000 
 | ||
|  foo.toExponential()   //"47e8" 
 | ||
| ```
 | ||
| 
 | ||
| Numbers可以访问`Number.prototype`中内置的方法。
 | ||
| 
 | ||
| 例如: `toFixed()`方法格式化一个具有小数点右侧特定位数的数字。
 | ||
| 
 | ||
| ```javascript
 | ||
| var foo = 47.69; 
 | ||
|  foo.toFixed(0);  // "48" 
 | ||
|  foo.toFixed(1);  // "47.7" 
 | ||
|  foo.toFixed(2);  // "47.69" 
 | ||
| ```
 | ||
| 
 | ||
| > 在浏览器中键入`Number.prototype`并自己查看其他可用方法。
 | ||
| 
 | ||
| #### 更多信息:
 | ||
| 
 | ||
| 1.  [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Number_type)
 | ||
| 2.  [JavaScript编号](https://www.w3schools.com/js/js_numbers.asp)
 | ||
| 
 | ||
| #### 参考
 | ||
| 
 | ||
| 1.  Kyle Simpson的[类型和语法](https://github.com/getify/You-Dont-Know-JS/tree/master/types%20%26%20grammar) 。
 | ||
| 2.  [ECMAScript语言规范:4.3.20](https://www.ecma-international.org/ecma-262/5.1/#sec-4.3.20)
 | ||
| 3.  [ECMAScript语言规范:15.7数字对象](https://www.ecma-international.org/ecma-262/5.1/#sec-15.7) |