日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
為什么 JavaScript 的 parseInt(0.0000005) 打印“5”?

前言

最近開發(fā)項(xiàng)目時遇到一個奇怪的問題,parseInt(0.0000005) === 5。正常情況下輸出0是正確的,為什么是5呢?我們一起來探討一下這個問題。

1. 什么時候使用parseInt?

首先,你通常什么時候使用parseInt?大多數(shù)時候,我們使用它來解析字符串并返回其整數(shù)部分。帶著這個問題,我們來看看parseInt方法。

2.關(guān)于parseInt的一些事情

根據(jù) MDN 文檔,“parseInt(string, radix) 函數(shù)解析字符串參數(shù)并返回指定基數(shù)(數(shù)學(xué)數(shù)字系統(tǒng)中的基數(shù))的整數(shù)?!?/p>

語法

parseInt(string)
parseInt(string, radix)

例如:

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

3. parseInt如何轉(zhuǎn)換數(shù)字?

當(dāng)parseInt的第一個參數(shù)是數(shù)字時,它如何解析?

parseInt(0.0000005) === 5 的真相也在這里......

3.1. 第一步?將數(shù)字轉(zhuǎn)換為字符串。

讓我們使用 String 函數(shù)檢查基于字符串的值,看看每個值的輸出是什么:

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 第二步是進(jìn)行舍入操作。

正如用戶 SeyyedKhandon 在他的 Stack Overflow 回答中解釋的那樣:

“當(dāng)我們使用 parseInt(0.0000005) 時,它等于 parseInt('5e-7') 并且基于定義:

parseInt 只能將字符串的前導(dǎo)部分解釋為整數(shù)值;它忽略任何不能解釋為整數(shù)表示法一部分的代碼單元,并且沒有給出任何此類代碼單元被忽略的指示。

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

最后,答案將僅返回 5,因?yàn)樗侵钡椒亲址?e 為止唯一一個數(shù)字字符,因此其余的 e-7 將被丟棄?!?/p>

4. 如何安全地獲取浮點(diǎn)數(shù)的整數(shù)部分?

建議使用以下 Math.floor() 函數(shù):

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

5.舉一反三

現(xiàn)在,你能解釋一下為什么 parseInt(99999999999999999999999999) 等于 1 嗎?


網(wǎng)站題目:為什么 JavaScript 的 parseInt(0.0000005) 打印“5”?
URL標(biāo)題:http://www.5511xx.com/article/ccisjsh.html