JavaScript Number 物件



JavaScript 只有一種數字型別。

可以使用也可以不使用小數點來書寫數字。


JavaScript 數字

JavaScript 數字可以使用也可以不使用小數點來書寫:

實例

var pi=3.14;    // 使用小數點
var x=34;       // 不使用小數點

#極大或極少的數字可透過科學(指數)數數法來寫入:

#實例

var y=123e5;    // 12300000
var z=123e-5;   // 0.00123


所有JavaScript 數字均為64 位

JavaScript 不是型別語言。與許多其他程式語言不同,JavaScript 不定義不同類型的數字,例如整數、短、長、浮點等等。

在JavaScript中,數字不分為整數型別和浮點型別,所有的數字都是由 浮點型類型。 JavaScript採用IEEE754標準定義的64位元浮點格式表示數字,它能表示最大值為±1.7976931348623157 x 10308,最小值為±5 x 10 -324

值(aka Fraction/Mantissa)指數Sign
#52 bits (0 - 51) 11 bits (50 - 62)1 bit (63)


#精確度

##整數(不使用小數點或指數計數法)最多為15 位。

小數的最大位數是17,但是浮點運算並不總是100% 準確:

實例

##
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>php中文网(php.cn)</title>
</head>
<body>

<script>
var x;
document.write("<p>仅显示17位: ");
x=12345678901234567890;
document.write(x + "</p>");
document.write("<p>0.2 + 0.1 = ");
x=0.2+0.1;
document.write(x + "</p>");
document.write("<p>可以通过乘以10或除以10来计算: ");
x=(0.2*10+0.1*10)/10;
document.write(x +"</p>");
</script>

</body>
</html>

運行實例»
點擊"運行實例" 按鈕查看線上實例

#八進位和十六進位

如果前綴為0,則JavaScript 會把數值常數解釋為八進位數,如果前綴為0 和"x",則解釋為十六進位數。

實例

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>php中文网(php.cn)</title>
</head>
<body>

<script>
var y = 0377;
var z = 0xFF; 
document.write(y + "<br>");
document.write(z + "<br>");
</script>

</body>
</html>

運行實例»
點擊"運行實例" 按鈕查看線上實例

#

預設情況下,JavaScript 數字為十進位顯示。

但你可以使用 toString() 方法 輸出16進位、8進位、2進位。

實例

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>php中文网(php.cn)</title>
</head>
<body>

<script>
var myNumber = 128;
document.write(myNumber + ' 十进制<br>');
document.write(myNumber.toString(16) + ' 十六进制<br>');
document.write(myNumber.toString(8) + ' 八进制<br>');
document.write(myNumber.toString(2) + ' 二进制<br>');
</script>

</body>
</html>

運行實例»

點擊"運行實例" 按鈕查看線上實例


無窮大(Infinity)

當數字運算結果超過了JavaScript所能表示的數字上限(溢出),結果為一個特殊的無限大(infinity)值,在JavaScript中以Infinity表示。同樣地,當負數的值超過了JavaScript所能表示的負數範圍,結果為負無窮大,在JavaScript中以-Infinity表示。無窮大值的行為特性和我們所期望的是一致的:基於它們的加、減、乘和除運算結果還是無限大(當然還保留它們的正負號)。

實例

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>php中文网(php.cn)</title>
</head>
<body>

<script>
myNumber=2;
while (myNumber!=Infinity){
	myNumber=myNumber*myNumber;
	document.write(myNumber +'<BR>');
}
</script>

</body>
</html>

運行實例»

點擊"運行實例" 按鈕查看線上實例

除以0也產生了無限:

實例

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>php中文网(php.cn)</title>
</head>
<body>

<script>
var x = 2/0;
var y = -2/0;
document.write(x + "<br>");
document.write(y + "<br>");
</script>

</body>
</html>

運行實例»##點擊"運行實例" 按鈕檢視線上實例


NaN - 非數字值

NaN 屬性是代表非數字值的特殊值。此屬性用於指示某個值不是數字。可以把 Number 物件設定為該值,來指示其不是數字值。

你可以用 isNaN() 全域函數來判斷一個值是否是 NaN 值。

實例

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>php中文网(php.cn)</title>
</head>
<body>
	
<p>一个数字除以一个字符串结果不是一个数字</p>
<p>一个数字除以一个字符串数字结果是一个数字</p>
<p id="demo"></p>
<script>
var x = 1000 / "Apple";
var y = 1000 / "1000";
document.getElementById("demo").innerHTML = isNaN(x) + "<br>" + isNaN(y);
</script>

</body>
</html>

運行實例»點擊"運行實例" 按鈕查看線上實例

除以0是無窮大,無窮大是一個數字:

實例

#
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>php中文网(php.cn)</title>
</head>
<body>
	
<p id="demo"></p>
<script>
var y = 1000 / 0;
document.getElementById("demo").innerHTML = isNaN(y);
</script>

</body>
</html>

運行實例»##點擊"運行實例" 按鈕查看線上實例

數字可以是數字或物件

數字可以私有資料進行初始化,就像 x = 123;

JavaScript 數字物件初始化數據, var y = new Number(123);

實例

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>php中文网(php.cn)</title>
</head>
<body>
<p id="demo"></p>

<script>
var x = 123;              // x 是一个数字
var y = new Number(123);  // y 是一个对象
var txt = typeof(x) + " " + typeof(y);
document.getElementById("demo").innerHTML=txt;
</script>

</body>
</html>

#執行實例»
點擊"運行實例"按鈕查看線上實例

實例

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>php中文网(php.cn)</title>
</head>
<body>
<p id="demo"></p>

<script>
var x = 123;              // x 是一个数字
var y = new Number(123);  // y 是一个对象
document.getElementById("demo").innerHTML = x===y;
</script>

</body>
</html>

運行實例»
點擊"運行實例"按鈕查看線上實例


數字屬性

  • ##MAX_VALUE

  • #MIN_VALUE

  • #NEGATIVE_INFINITY
  • #POSITIVE_INFINITY
  • NaN
  • prototype
  • constructor
數位方法

    toExponential()
  • toFixed()
  • #toPrecision()
  • toString()
  • valueOf()
lamp絕對不要在數字前面寫零,除非您需要進行八進位轉換。