日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

為什么 JavaScript 的 parseInt(0.0000005) 打印“5”?

來源: 責編: 時間:2023-09-28 10:08:30 313觀看
導讀前言最近開發項目時遇到一個奇怪的問題,parseInt(0.0000005) === 5。正常情況下輸出0是正確的,為什么是5呢?我們一起來探討一下這個問題。1. 什么時候使用parseInt?首先,你通常什么時候使用parseInt?大多數時候,我們使用它來

前言

4gn28資訊網——每日最新資訊28at.com

最近開發項目時遇到一個奇怪的問題,parseInt(0.0000005) === 5。正常情況下輸出0是正確的,為什么是5呢?我們一起來探討一下這個問題。4gn28資訊網——每日最新資訊28at.com

1. 什么時候使用parseInt?

首先,你通常什么時候使用parseInt?大多數時候,我們使用它來解析字符串并返回其整數部分。帶著這個問題,我們來看看parseInt方法。4gn28資訊網——每日最新資訊28at.com

2.關于parseInt的一些事情

根據 MDN 文檔,“parseInt(string, radix) 函數解析字符串參數并返回指定基數(數學數字系統中的基數)的整數。”4gn28資訊網——每日最新資訊28at.com

語法4gn28資訊網——每日最新資訊28at.com

parseInt(string)parseInt(string, radix)

例如:4gn28資訊網——每日最新資訊28at.com

parseInt('0.5') // 0parseInt('0.5') // 0parseInt('0.05') // 0parseInt('0.005') // 0parseInt('0.0005') // 0parseInt('0.00005') // 0parseInt('0.000005') // 0parseInt('015') // 15parseInt('015', 8) // 13parseInt('15px', 10) // 15

3. parseInt如何轉換數字?

當parseInt的第一個參數是數字時,它如何解析?4gn28資訊網——每日最新資訊28at.com

parseInt(0.0000005) === 5 的真相也在這里......4gn28資訊網——每日最新資訊28at.com

3.1. 第一步?將數字轉換為字符串。

讓我們使用 String 函數檢查基于字符串的值,看看每個值的輸出是什么:4gn28資訊網——每日最新資訊28at.com

String(0.5);      // => '0.5'String(0.05);     // => '0.05'String(0.005);    // => '0.005'String(0.0005);   // => '0.0005' String(0.00005);  // => '0.00005'String(0.000005); // => '0.000005'String(0.0000005); // => '5e-7' pay attention here

3.2 第二步是進行舍入操作。

正如用戶 SeyyedKhandon 在他的 Stack Overflow 回答中解釋的那樣:4gn28資訊網——每日最新資訊28at.com

“當我們使用 parseInt(0.0000005) 時,它等于 parseInt('5e-7') 并且基于定義:4gn28資訊網——每日最新資訊28at.com

parseInt 只能將字符串的前導部分解釋為整數值;它忽略任何不能解釋為整數表示法一部分的代碼單元,并且沒有給出任何此類代碼單元被忽略的指示。4gn28資訊網——每日最新資訊28at.com

parseInt(0.0000005)
parseInt('5e-7') // 5

最后,答案將僅返回 5,因為它是直到非字符 e 為止唯一一個數字字符,因此其余的 e-7 將被丟棄。”4gn28資訊網——每日最新資訊28at.com

4. 如何安全地獲取浮點數的整數部分?

建議使用以下 Math.floor() 函數:4gn28資訊網——每日最新資訊28at.com

Math.floor(0.5);      // => 0Math.floor(0.05);     // => 0Math.floor(0.005);    // => 0Math.floor(0.0005);   // => 0Math.floor(0.00005);  // => 0Math.floor(0.000005); // => 0Math.floor(0.0000005); // => 0

5.舉一反三

現在,你能解釋一下為什么 parseInt(99999999999999999999999999) 等于 1 嗎?4gn28資訊網——每日最新資訊28at.com


4gn28資訊網——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-11864-0.html為什么 JavaScript 的 parseInt(0.0000005) 打印“5”?

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 十道Java限流器面試題和答案

下一篇: 關于架構“重構”的要點

標簽:
  • 熱門焦點
  • 六大權益!華為8月服務日開啟:手機免費貼膜、維修免人工費

    8月5日消息,一年一度的華為開發者大會2023(Together)日前在松山湖拉開帷幕,與此同時,華為8月服務日也式開啟,到店可享六大專屬權益。華為用戶可在華為商城Ap
  • 一篇聊聊Go錯誤封裝機制

    %w 是用于錯誤包裝(Error Wrapping)的格式化動詞。它是用于 fmt.Errorf 和 fmt.Sprintf 函數中的一個特殊格式化動詞,用于將一個錯誤(或其他可打印的值)包裝在一個新的錯誤中。使
  • WebRTC.Net庫開發進階,教你實現屏幕共享和多路復用!

    WebRTC.Net庫:讓你的應用更親民友好,實現視頻通話無痛接入! 除了基本用法外,還有一些進階用法可以更好地利用該庫。自定義 STUN/TURN 服務器配置WebRTC.Net 默認使用 Google 的
  • 使用AIGC工具提升安全工作效率

    在日常工作中,安全人員可能會涉及各種各樣的安全任務,包括但不限于:開發某些安全工具的插件,滿足自己特定的安全需求;自定義github搜索工具,快速查找所需的安全資料、漏洞poc、exp
  • 2天漲粉255萬,又一賽道在抖音爆火

    來源:運營研究社作者 | 張知白編輯 | 楊佩汶設計 | 晏談夢潔這個暑期,旅游賽道徹底火了:有的「地方」火了——貴州村超旅游收入 1 個月超過 12 億;有的「博主」火了&m
  • 騰訊VS網易,最卷游戲暑期檔,誰能笑到最后?

    作者:無銹缽來源:財經無忌7月16日晚,上海1862時尚藝術中心。伴隨著幻象的精準命中,碩大的熒幕之上,比分被定格在了14:12,被寄予厚望的EDG戰隊以絕對的優勢戰勝了BLG戰隊,拿下了總決
  • 滴滴違法違規被罰80.26億 共存在16項違法事實

    滴滴違法違規被罰80.26億 存在16項違法事實開始于2121年7月,歷經一年時間,網絡安全審查辦公室對“滴滴出行”網絡安全審查終于有了一個暫時的結束。據“網信
  • SN570 NVMe SSD固態硬盤 價格與性能兼具

    SN570 NVMe SSD固態硬盤是西部數據發布的最新一代WD Blue系列的固態硬盤,不僅閃存技術更為精進,性能也得到了進一步的躍升。WD Blue SN570 NVMe SSD的包裝外
  • 電博會與軟博會實現"線下+云端"的雙線融合

    在本次“電博會”與“軟博會”雙展會利好條件的加持下,既可以發揮展會拉動人流、信息流、資金流實現快速交互流動的作用,繼而推動區域經濟良性發展;又可以聚
Top 主站蜘蛛池模板: 突泉县| 汉阴县| 乌什县| 新河县| 海兴县| 甘德县| 广东省| 东安县| 梨树县| 陕西省| 崇义县| 察雅县| 万宁市| 密云县| 道孚县| 明星| 金坛市| 五华县| 宜州市| 桑日县| 杂多县| 陇川县| 都江堰市| 叶城县| 安龙县| 安乡县| 灵璧县| 通渭县| 南宫市| 雷波县| 哈尔滨市| 九江市| 平凉市| 陆河县| 徐水县| 封开县| 隆子县| 峨山| 偃师市| 临洮县| 衡水市|