搜尋
首頁web前端js教程詳解讀JS數值Number型別(圖文教學)

詳解讀JS數值Number型別(圖文教學)

May 18, 2018 pm 05:13 PM
javascript類型

本篇文章主要給大家詳細分析了JavaScript數值Number類型的相關知識點,對此有興趣的朋友跟著我一起學習下。

Number 問題

下面的問題你都能回答對了嗎?

  • 0.1 0.2 == 0.3 成立嗎?

  • .e-5 表示多少?

  • 怎麼表示8進位?

  • 怎麼轉換進位?

  • 如何將字串轉換成數值或整數?反過來呢?十六進位又怎麼處理?

  • parseInt(0x12, 16) 的回傳值是多少?是0x12嗎?

  • Number.MAX_VALUE 為最大數值,(new Number(12)).MAX_VALUE 是多少?

  • JavaScript中怎麼進行四捨五入?如果保留3位小數的精度?

  • 如何取得一個隨機數字?如何取整?如何向上取整?

Number數字表示方法

Number類型表示數字,JavaScript 採用「IEEE 754 標準定義的雙精度64位元格式」("double-precision 64 -bit format IEEE 754 values")表示數字。

和其他程式語言(如C 和Java)不同,JavaScript 不區分整數值和浮點數值,所有數字在JavaScript 中均以浮點數數值表示,所以在進行數字運算的時候要特別注意進度缺失問題。

0.1 + 0.2 = 0.30000000000000004;
0.1 + 0.2 == 0.3; // false
// 浮点运算判断相等
var ACCURACY = 1e-5; //定义精度精确到0.00001
var a = 0.1;
var b = 0.2;
var sum = 0.3;
// 判断相差小于精度就认为相等
if (a + b - sum < ACCURACY) {
 console.log(&#39;a+b == sum&#39;);
}

在具體實現時,整數值通常被視為32位元整數變量,在個別實現(如某些瀏覽器)中也以32位整數變量的形式進行存儲,直到它被用於執行某些32位元整型不支援的操作,這是為了方便進行位元操作。

可以使用省略0 表示小數,也可以用指數形式表示數字

.9; // 0.9
1E3 // 1000
2e6 // 2000000
0.1e2 // 10
1e-5 // 0.00001

Number數字不同進位

不同進位的表示方法

Number可以使用四種數字進制:十進制,二進制,八進制和十六進制。非十進制只使用與整數。

  • 二進位表示法:以零為開頭,後面接著一個小寫或大寫的拉丁文字母B(0b或是0B)

  • 八進位表示法:以0為開頭的。假如0後面的數字不在0到7的範圍內,該數字將會被轉換成十進制數字。

  • 在ECMAScript 5 嚴格模式下禁止使用八進位語法,會被視為十進位

  • 在ECMAScript 6中使用八進位數字是需要給一個數字加上前綴"0o"

  • 十六進位表示法:以零為開頭,後面接著一個小寫或大寫的拉丁文字母X(0x或是0X)

// 十进制
12345678
42
0777 // 在非严格格式下会被当做八进制处理 (用十进制表示就是511)
// 二进制
var a = 0b100000; // 32
var b = 0b0111111; // 63
var c = 0B0000111; // 7
// 八进制
var n = 0755; // 493
var m = 0644; // 420
var a = 0o10; // ES6 :八进制
// 十六进制
0xFFFFFFFFFFFFFFFFF // 295147905179352830000
0x123456789ABCDEF // 81985529216486900
0XA    // 10

不同進位的轉換

進位的轉換主要用到Number的toString()方法或parseInt()方法:

  • toString() 方法接受一個值為2~36 之間的整數參數指定進制,預設為十進制,將Number轉為String

  • parseInt() 第二個參數接受一個值為2~36 之間的整數參數指定進制,預設為十進制,將String轉為Number

// toString转换,输入为Number,返回为String
var n = 120;
n.toString(); // "120"
n.toString(2); // "1111000"
n.toString(8); // "170"
n.toString(16); // "78"
n.toString(20); // "60"
0x11.toString(); // "17"
0b111.toString(); // "7"
0x11.toString(12);// "15"
// parseInt转换,输入为String,返回为Number
parseInt(&#39;110&#39;); // 110
parseInt(&#39;110&#39;, 2); // 6
parseInt(&#39;110&#39;, 8); // 72
parseInt(&#39;110&#39;, 16); // 272
parseInt(&#39;110&#39;, 26); // 702
// toString和parseInt结合使用可以在两两进制之间转换
// 将 a 从36进制转为12进制
var a = &#39;ra&#39;; // 36进制表示的数
parseInt(a, 36).toString(12); // "960"

數字物件Number

#Number對象是內建的數位對象,它封裝了一系列Number相關的常數和方法。

var na = Number(8); // 8
na = Number(&#39;9.5&#39;); // 9.5
na = new Number(&#39;9.3&#39;); // Number 对象,仅可以使用原型方法

Number物件的屬性:

##Number.MAX_SAFE_INTEGER#JavaScript最大安全性整數#

Number对象方法

Number对象方法可以使用 Number. 的形式调用,也可以使用全局调用。

#Number.MAX_VALUE 可表示的最大值
Number.MIN_VALUE 可表示的最小值
Number.NaN 特指」非數字“
Number.NEGATIVE_INFINITY 特別指「負無窮」;溢出時回傳
Number.POSITIVE_INFINITY #特別指「正無窮」;在溢出時回傳
Number.EPSILON 表示1和比最接近1且大於1的最小Number之間的差別
Number.MIN_SAFE_INTEGER #JavaScript最小安全整數
Number.parseFloat() 把字符串参数解析成浮点数,左右等效于一元运算法+
Number.parseInt() 把字符串解析成特定基数对应的整型数字
Number.isFinite() 判断传递的值是否为有限数字
Number.isInteger() 判断传递的值是否为整数
Number.isNaN() 判断传递的值是否为 NaN
Number.isSafeInteger() 判断传递的值是否为安全整数

parseInt() 方法需要注意:

  • parseInt() 参数可以有两个参数:数字字符串和进制

  • 如果第一个参数为非指定进制的数字字符串,则结果为0

  • 如果第一个参数为非字符串,会首先调用该参数的toString()方法转换为字符串

  • 第一个参数中非指定进制可识别的字符会被忽略

  • 如果给定的字符串不存在数值形式,函数会返回一个特殊的值 NaN

  • 如果调用时没有提供第二个参数,则使用字符串表示的数字的进制

parseInt(&#39;123&#39;); // 123
parseInt(&#39;123&#39;, 10); // 123
parseInt(&#39;123&#39;, 8); // 83
parseInt(&#39;123&#39;, 16); // 291
parseInt("11", 2); // 3
parseInt(&#39;0x123&#39;, 10); // 0
parseInt(&#39;0x123&#39;, 16); // 291
parseInt(&#39;0x123&#39;); // 291
// 如果第一个参数不是字符串,会先把第一个参数转成字符串
parseInt(&#39;12&#39;, 16); // 18
parseInt(12, 16); // 18
// toString方法会将数字转换为10进制的字符串
parseInt(0xf, 16); // 21
0xf.toString(); // &#39;15&#39;
parseInt(&#39;15&#39;, 16); // 21
parseInt(&#39;23.56&#39;); // 23
parseInt("hello", 16); // NaN
parseInt("aello", 16); // 174

Number类型原型方法

Number类型原型上还有一些方法来对数字进度进行取舍,这些方法可以被 Number 实例对象调用:

toExponential() 返回一个数字的指数形式的字符串
toFixed() 返回指定小数位数的表示形式
toPrecision() 返回一个指定精度的数字

这些原型方法可以被Number实例对象调用:

var numObj = 12345.6789;
numObj.toExponential(); // "1.23456789e+4"
numObj.toExponential(2); // "1.23e+4"
numObj.toExponential(4); // "1.2346e+4"
numObj.toPrecision();  // "12345.6789"
numObj.toPrecision(2); // "1.2e+4"
numObj.toPrecision(4); // "1.235e+4"
numObj.toFixed();   // 返回 "12346":进行四舍五入,不包括小数部分
numObj.toFixed(1);  // 返回 "12345.7":进行四舍五入
numObj.toFixed(6);  // 返回 "12345.678900":用0填充
(1.23e+20).toFixed(2); // 返回 "123000000000000000000.00"
(1.23e-10).toFixed(2); // 返回 "0.00"
2.34.toFixed(1);   // 返回 "2.3"
-2.34.toFixed(1);   // 返回 -2.3 (由于操作符优先级,负数不会返回字符串)
(-2.34).toFixed(1);  // 返回 "-2.3" (若用括号提高优先级,则返回字符串)

数学对象(Math)

和Number相关的是,JavaScript对象中内置的Math对象,提供了很多数学常数和函数的属性和方法。

属性列表:

Math.E 欧拉常数,也是自然对数的底数, 约等于 2.718
Math.LN2 2的自然对数, 约等于0.693
Math.LN10 10的自然对数, 约等于 2.303
Math.LOG2E 以2为底E的对数, 约等于 1.443
Math.LOG10E 以10为底E的对数, 约等于 0.434
Math.PI 圆周率,一个圆的周长和直径之比,约等于 3.14159
Math.SQRT2 2的平方根,约等于 1.414
Math.SQRT1_2 1/2的平方根, 约等于 0.707

Math中的三角函數sin 等參數為弧度,如果是角度可以使用(Math.PI / 180)

##Math.trunc(x)傳回x的整數部分,移除小數Math.sqrt(x)傳回x的平方根Math.cbrt(x)返回x的立方根Math.hypot([x[,y[,…]]])傳回其參數平方和的平方根Math.pow(x,y)傳回x的y次方min(), max()傳回以逗號間隔的數字參數清單中較小或較大的值(分別地)sin(), cos(), tan()標準三角函數;參數為弧度asin(), acos(), atan(), atan2()反三角函數; 傳回值為弧度sinh(), cosh(), tanh()#雙曲三角函數; 傳回值為弧度. asinh(), acosh(), atanh()反雙曲三角函數;傳回值為弧度.pow(), exp(), expm1( ), log10(), log1p(), log2()指數與對數函數
Math.abs (x) 傳回x的絕對值
Math.sign(x) 傳回x的符號函數, 判定x是正數,負數還是0
Math.random() 傳回0到1之間的偽隨機數
Math.floor (x) 返回x向上取整後的值
Math.ceil(x) 傳回x向上取整後的值
Math.round(x) 返回四捨五入後的整數.
Math.fround(x) 傳回數字的最接近的單精確度浮點型表示
以上就是我整理的關於JS數值Number型別知識點的全部內容,希望今後對大家有幫助。

相關文章:

p5.js實作畢達哥拉斯樹(附程式碼)

js動畫計時器使用教學

#JS怎麼儲存原始值與引用值

以上是詳解讀JS數值Number型別(圖文教學)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
超越瀏覽器:現實世界中的JavaScript超越瀏覽器:現實世界中的JavaScriptApr 12, 2025 am 12:06 AM

JavaScript在現實世界中的應用包括服務器端編程、移動應用開發和物聯網控制:1.通過Node.js實現服務器端編程,適用於高並發請求處理。 2.通過ReactNative進行移動應用開發,支持跨平台部署。 3.通過Johnny-Five庫用於物聯網設備控制,適用於硬件交互。

使用Next.js(後端集成)構建多租戶SaaS應用程序使用Next.js(後端集成)構建多租戶SaaS應用程序Apr 11, 2025 am 08:23 AM

我使用您的日常技術工具構建了功能性的多租戶SaaS應用程序(一個Edtech應用程序),您可以做同樣的事情。 首先,什麼是多租戶SaaS應用程序? 多租戶SaaS應用程序可讓您從唱歌中為多個客戶提供服務

如何使用Next.js(前端集成)構建多租戶SaaS應用程序如何使用Next.js(前端集成)構建多租戶SaaS應用程序Apr 11, 2025 am 08:22 AM

本文展示了與許可證確保的後端的前端集成,並使用Next.js構建功能性Edtech SaaS應用程序。 前端獲取用戶權限以控制UI的可見性並確保API要求遵守角色庫

JavaScript:探索網絡語言的多功能性JavaScript:探索網絡語言的多功能性Apr 11, 2025 am 12:01 AM

JavaScript是現代Web開發的核心語言,因其多樣性和靈活性而廣泛應用。 1)前端開發:通過DOM操作和現代框架(如React、Vue.js、Angular)構建動態網頁和單頁面應用。 2)服務器端開發:Node.js利用非阻塞I/O模型處理高並發和實時應用。 3)移動和桌面應用開發:通過ReactNative和Electron實現跨平台開發,提高開發效率。

JavaScript的演變:當前的趨勢和未來前景JavaScript的演變:當前的趨勢和未來前景Apr 10, 2025 am 09:33 AM

JavaScript的最新趨勢包括TypeScript的崛起、現代框架和庫的流行以及WebAssembly的應用。未來前景涵蓋更強大的類型系統、服務器端JavaScript的發展、人工智能和機器學習的擴展以及物聯網和邊緣計算的潛力。

神秘的JavaScript:它的作用以及為什麼重要神秘的JavaScript:它的作用以及為什麼重要Apr 09, 2025 am 12:07 AM

JavaScript是現代Web開發的基石,它的主要功能包括事件驅動編程、動態內容生成和異步編程。 1)事件驅動編程允許網頁根據用戶操作動態變化。 2)動態內容生成使得頁面內容可以根據條件調整。 3)異步編程確保用戶界面不被阻塞。 JavaScript廣泛應用於網頁交互、單頁面應用和服務器端開發,極大地提升了用戶體驗和跨平台開發的靈活性。

Python還是JavaScript更好?Python還是JavaScript更好?Apr 06, 2025 am 12:14 AM

Python更适合数据科学和机器学习,JavaScript更适合前端和全栈开发。1.Python以简洁语法和丰富库生态著称,适用于数据分析和Web开发。2.JavaScript是前端开发核心,Node.js支持服务器端编程,适用于全栈开发。

如何安裝JavaScript?如何安裝JavaScript?Apr 05, 2025 am 12:16 AM

JavaScript不需要安裝,因為它已內置於現代瀏覽器中。你只需文本編輯器和瀏覽器即可開始使用。 1)在瀏覽器環境中,通過標籤嵌入HTML文件中運行。 2)在Node.js環境中,下載並安裝Node.js後,通過命令行運行JavaScript文件。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SecLists

SecLists

SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )專業的PHP整合開發工具

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版