AVt天堂网 手机版,亚洲va久久久噜噜噜久久4399,天天综合亚洲色在线精品,亚洲一级Av无码毛片久久精品

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

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

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

前言

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

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

1. 什么時候使用parseInt?

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

2.關于parseInt的一些事情

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

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

parseInt(string)parseInt(string, radix)

例如:yOU28資訊網——每日最新資訊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的第一個參數是數字時,它如何解析?yOU28資訊網——每日最新資訊28at.com

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

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

讓我們使用 String 函數檢查基于字符串的值,看看每個值的輸出是什么:yOU28資訊網——每日最新資訊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 回答中解釋的那樣:yOU28資訊網——每日最新資訊28at.com

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

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

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

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

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

建議使用以下 Math.floor() 函數:yOU28資訊網——每日最新資訊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 嗎?yOU28資訊網——每日最新資訊28at.com


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

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

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

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

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

標簽:
  • 熱門焦點
  • 線程通訊的三種方法!通俗易懂

    線程通信是指多個線程之間通過某種機制進行協調和交互,例如,線程等待和通知機制就是線程通訊的主要手段之一。 在 Java 中,線程等待和通知的實現手段有以下幾種方式:Object 類下
  • Rust中的高吞吐量流處理

    作者 | Noz編譯 | 王瑞平本篇文章主要介紹了Rust中流處理的概念、方法和優化。作者不僅介紹了流處理的基本概念以及Rust中常用的流處理庫,還使用這些庫實現了一個流處理程序
  • 學習JavaScript的10個理由...

    作者 | Simplilearn編譯 | 王瑞平當你決心學習一門語言的時候,很難選擇到底應該學習哪一門,常用的語言有Python、Java、JavaScript、C/CPP、PHP、Swift、C#、Ruby、Objective-
  • 十個簡單但很有用的Python裝飾器

    裝飾器(Decorators)是Python中一種強大而靈活的功能,用于修改或增強函數或類的行為。裝飾器本質上是一個函數,它接受另一個函數或類作為參數,并返回一個新的函數或類。它們通常用
  • 微信語音大揭秘:為什么禁止轉發?

    大家好,我是你們的小米。今天,我要和大家聊一個有趣的話題:為什么微信語音不可以轉發?這是一個我們經常在日常使用中遇到的問題,也是一個讓很多人好奇的問題。讓我們一起來揭開這
  • 使用AIGC工具提升安全工作效率

    在日常工作中,安全人員可能會涉及各種各樣的安全任務,包括但不限于:開發某些安全工具的插件,滿足自己特定的安全需求;自定義github搜索工具,快速查找所需的安全資料、漏洞poc、exp
  • 華為HarmonyOS 4.0將于8月4日發布 或搭載AI大模型技術

    華為宣布HarmonyOS4.0將于8月4日正式發布。此前,華為已經針對開發者公布了HarmonyOS4.0,以便于開發者提前進行適配,也因此被曝光出了一些新系統的特性
  • iQOO Neo8系列或定檔5月23日:首發天璣9200+ 安卓跑分王者

    去年10月,iQOO推出了iQOO Neo7系列機型,不僅搭載了天璣9000+,而且是同價位唯一一款天璣9000+直屏旗艦,一經上市便受到了用戶的廣泛關注。在時隔半年后,
  • Meta盲目擴張致超萬人被裁,重金押注元宇宙而前景未明

    圖片來源:圖蟲創意日前,Meta創始人兼CEO 馬克·扎克伯發布公開信,宣布Meta計劃裁員超11000人,占其員工總數13%。他公開承認了自己的預判失誤:“不僅
Top