Number
參考書目 參考書 
根據規格,JavaScript 數字算是「雙精確度 64 位元格式 IEEE 754 值」("double-precision 64-bit format IEEE 754 values")。
所以JavaScript沒有所謂的整數, 也就是

介於+- 1.7976931348623157 * 10e308次方到 +-5*10e-324 為可表達的範例 , 整數的話 -9007199254740992 (-2 53次方) ~ 9007199254740992 (2 53次方) 千兆

                  0.1 + 0.2 ;    // 結果為 0.30000000000000004
              
因為 javaScript 的浮點數採用二位位表示法 , 但無法精準的表示1/10, 1/100 這種十進位小數.
整數字面值
包含 0 , 正整數 , 負整數 ,可使用 10進位 , 8進位, 16進位
因為某些 js 允許八進位或十六進位格式來表達整數 , 所以如果是使用10進位時, 不要以 0 為開頭, 以免被認為八或十六進位的整數而導致計算錯誤。
浮點數字面值 3.14
2345.789
.33333333
6.02e23 (6.02 * 10 23次方)
最大 +- 1.7976931348623457 xE 308
最小 +-5 xE-324
數值

數值物件
                    var addresult = 0;
                    var num_arr = new Array(
                          777,
                          777.1,
                          777.2,
                          new Number(777),      //它是object
                          new Number(777.1),    //它是object
                          new Number(777.2)     //它是object
                          );
                      for (var i = 0; i < num_arr.length; i++) {
                          show += num_arr[i].toString() + "【" + typeof (num_arr[i]) + " 】
"; addresult += num_arr[i]; //最後加總結果 }
isNaN(n)

Not a Number
isNaN可以判斷是否為數字
                  var arr = new Array(
                          0,
                          7,
                          new Number(7),
                          new Boolean(true),
                          '',                   //空字串很特別, isNaN 竟然是 false
                          'ABC',
                          true,
                          false,
                          null,                 //null 也是, isNaN 竟然是 false
                          undefined,            //undefined , isNaN 是 true
                          Infinity,
                          NaN,
                          function () { alert(''); }
                          );
              
Number的其他常數 (特殊值)
Numer.MAX_VALUE

NaN不等於任何值 , if (NaN === NaN) == > false

                            var arr = new Array(
                                          Number.MAX_VALUE,
                                          Number.MIN_VALUE,
                                          Number.NaN,
                                          Number.NEGATIVE_INFINITY,
                                          Number.POSITIVE_INFINITY);
                            for (var i = 0; i < arr.length; i++) {
                                //顯示Number常數的值
                                arr[i].valueOf();
                            }
                        
Numer.MIN_VALUE
Number.NaN
Numer.NEGATIVE
Numer.POSITIVE_INFINITY
字串轉換為數字
parseInt(string, radix)
    var arr = new Array('AA', 'aa', 'kk', '', '123', '0', '123.123', '1.12', '1.49', '0.49', '1.5', '0.5', '1.51', '0.51');
    var radix_arr = new Array(0,2,8,10,16);
    var show = "";
    for (var j = 0; j < arr.length; j++) {
        for (var i = 0; i < radix_arr.length; i++) {
    
            var radix = "空";
            var showval = parseInt(arr[j]);
            if (radix_arr[i] !== 0) {
                showval = parseInt(arr[j], radix_arr[i]);
                radix = radix_arr[i].toString();
            }
            show += "radix:" + radix + ", " + arr[j].toString() + " --> " + showval + "
"; } }

parseFloat(string, radix)  
指定數值顯示的形式
toExponential
以指數形式顯示
    for (var i = 0; i < 10; i++) {
        Math.PI.toExponential(i);       //toExponential(i) i是(0-20)之間的值
    }
    var n = 12345678.87654321;
    for (var i = 0; i < 10; i++) {
        n.toExponential(i);
    }

toFixed
將數字四捨五入為指定小數位數的數字

文字不可使用, 會出現 Object obj has no method 'toFixed' (物件沒有支援這個屬性或方法)

	var arr = new Array(Math.PI, 0, 1234.123456789, 1.49, 1.50, 1.51, 'aa', '');
	var show = "";
					             
	for (var i = 0; i < arr.length; i++) {
		try {
			if (typeof (arr[i]) === 'number') {
				for (var j = 0; j < 8; j++) {
					show += arr[i].toString() + ".toFixed(" + j.toString() + ") = " + arr[i].toFixed(j) + "
"; } } else { show += arr[i].toString() + "型別為" + typeof (arr[i]) + ", 不具有toFixed()方法!
"; } } catch (e) { alert(e.message); } }
toPrecesion 指定位數 (會四拾五入)
    var n = 234234.654;
	document.write(n.toPrecision(9));
.toString(radix)
                            //轉換為 radix 進位
                            Math.PI.toString(2);
                            Math.PI.toString(7);
                            Math.PI.toString(16);
                            Math.PI.toString();
                        
將數值變成奇數 / 偶數
n = n | 1 ; 變成奇數 如果是偶數時 , 它會一變成奇數 -->
n = ( n >> 1 ) << 1 ; 變成偶數 如果是奇數時 , 它會一變成偶數 -->
n = n ^ 1 ; 倒反 偶數時 , 它會一變成奇數

奇數時 , 它會一變成偶數
-->

它只對整數有效 , 小數部份會被捨去

取出小數部份 因為會產生誤差  , 所以弄成字串來處理

if (( "" + n).indexOf(".") > -1) {
   n = Number("0." + String(n).split("."))[1] ) ;}
else{ n = 0 ;}
Math物件
取出數值的整數部分
.floor(n) 無條件捨去
.ceil(n) (無條件進位)
.round(n) 傳回最接近 n 的整數
va = Math.round( n )
Math.round( 5.49 )    ---> 5
Math.round( 5.5 )      ---> 6
Math.round( '5.501' ) ---> 6
Math.round( -5.499 ) ---> 5
Math.round( -5.5 )     ---> 5
Math.round( -5.501 )  ---> 6
(無值時自動取0.01 ~ 10 來顯示)
i值 Math.floor Math.ceil Math.round
.random( )
隨機值
                              for (i = 0; i < 10; i++) {
                                      s += Math.random() + "
" //值介於 0 ~ 1.0 之間 s += Math.floor(Math.random() * 100) + "
" //取 0 ~ 100 的隨機值 };
.abs(n)  取絕對值 (正數)
Math.abs(12)        --> 12
如果是字串時, 會回傳 NaN
Math.abs( '-12' )    --> 12
E 自然數
LN2 in2
LN10 in10
LOG2E log2e
LOG10E logE
PI 圓周率
SQRT1_2 根號1/2的平方根
SQRT2 根號2
max ( v1 , v2 , [....] ) 傳回最大數 (可以數值陣列)
min ( v1 , v2, [....] ) 傳回兩參數的最小數
Math . pow ( 2 , 4 ) 取得2的四次方
Math . sqrt ( 9 ) 取平方根
abs ( ) 絕對值
acos ( ) 反餘弦
asin ( ) 反正弦
atan ( ) 反正切
cos ( ) 餘弦
exp ( ) 自然數的指數ex
log ( ) 自然對數
sin ( ) 正弦
sqrt ( ) 傳回參數的平方根
tan ( ) 正切