第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

如何在JavaScript中將浮點(diǎn)數(shù)轉(zhuǎn)換為整數(shù)?

如何在JavaScript中將浮點(diǎn)數(shù)轉(zhuǎn)換為整數(shù)?

森林海 2019-09-18 11:06:12
我想在JavaScript中將float轉(zhuǎn)換為整數(shù)。實(shí)際上,我想知道如何同時(shí)執(zhí)行標(biāo)準(zhǔn)轉(zhuǎn)換:截?cái)嗪蜕崛?。并且有效,而不是通過轉(zhuǎn)換為字符串和解析。
查看完整描述

3 回答

?
神不在的星期二

TA貢獻(xiàn)1963條經(jīng)驗(yàn) 獲得超6個(gè)贊

var intvalue = Math.floor( floatvalue );

var intvalue = Math.ceil( floatvalue ); 

var intvalue = Math.round( floatvalue );


// `Math.trunc` was added in ECMAScript 6

var intvalue = Math.trunc( floatvalue );

數(shù)學(xué)對(duì)象參考


例子

// value=x        //  x=5          5<x<5.5      5.5<=x<6  


Math.floor(value) //  5            5            5

Math.ceil(value)  //  5            6            6

Math.round(value) //  5            5            6

Math.trunc(value) //  5            5            5

parseInt(value)   //  5            5            5

~~value           //  5            5            5

value | 0         //  5            5            5

value >> 0        //  5            5            5

value >>> 0       //  5            5            5

value - value % 1 //  5            5            5

負(fù)

// value=x        // x=-5         -5>x>=-5.5   -5.5>x>-6


Math.floor(value) // -5           -6           -6

Math.ceil(value)  // -5           -5           -5

Math.round(value) // -5           -5           -6

Math.trunc(value) // -5           -5           -5

parseInt(value)   // -5           -5           -5

value | 0         // -5           -5           -5

~~value           // -5           -5           -5

value >> 0        // -5           -5           -5

value >>> 0       // 4294967291   4294967291   4294967291

value - value % 1 // -5           -5           -5

積極 - 更大的數(shù)字

// x = Number.MAX_SAFE_INTEGER/10 // =900719925474099.1


// value=x            x=900719925474099    x=900719925474099.4  x=900719925474099.5


Math.floor(value) //  900719925474099      900719925474099      900719925474099

Math.ceil(value)  //  900719925474099      900719925474100      900719925474100

Math.round(value) //  900719925474099      900719925474099      900719925474100

Math.trunc(value) //  900719925474099      900719925474099      900719925474099

parseInt(value)   //  900719925474099      900719925474099      900719925474099

value | 0         //  858993459            858993459            858993459

~~value           //  858993459            858993459            858993459

value >> 0        //  858993459            858993459            858993459

value >>> 0       //  858993459            858993459            858993459

value - value % 1 //  900719925474099      900719925474099      900719925474099

否定 - 更大的數(shù)字

// x = Number.MAX_SAFE_INTEGER/10 * -1 // -900719925474099.1


// value = x      // x=-900719925474099   x=-900719925474099.5 x=-900719925474099.6


Math.floor(value) // -900719925474099     -900719925474100     -900719925474100

Math.ceil(value)  // -900719925474099     -900719925474099     -900719925474099

Math.round(value) // -900719925474099     -900719925474099     -900719925474100

Math.trunc(value) // -900719925474099     -900719925474099     -900719925474099

parseInt(value)   // -900719925474099     -900719925474099     -900719925474099

value | 0         // -858993459           -858993459           -858993459

~~value           // -858993459           -858993459           -858993459

value >> 0        // -858993459           -858993459           -858993459

value >>> 0       //  3435973837           3435973837           3435973837

value - value % 1 // -900719925474099     -900719925474099     -900719925474099



查看完整回答
反對(duì) 回復(fù) 2019-09-18
?
回首憶惘然

TA貢獻(xiàn)1847條經(jīng)驗(yàn) 獲得超11個(gè)贊

按位OR運(yùn)算符

按位或運(yùn)算符可用于截?cái)喔↑c(diǎn)數(shù),它適用于正數(shù)和負(fù)數(shù):


function float2int (value) {

    return value | 0;

}

結(jié)果


float2int(3.1) == 3

float2int(-3.1) == -3

float2int(3.9) == 3

float2int(-3.9) == -3

性能比較?

我創(chuàng)建了一個(gè)JSPerf測(cè)試,用于比較以下各項(xiàng)之間的性能:


Math.floor(val)

val | 0 按位OR

~~val 按位NOT

parseInt(val)

只適用于正數(shù)。在這種情況下,您可以安全地使用按位運(yùn)算和Math.floor函數(shù)。


但是,如果您需要使用代碼來處理正數(shù)和負(fù)數(shù),那么按位運(yùn)算是最快的(OR是首選運(yùn)算)。這個(gè)其他JSPerf測(cè)試比較相同的地方很明顯,因?yàn)轭~外的符號(hào)檢查Math現(xiàn)在是四個(gè)中最慢的。


注意

如評(píng)論中所述,BITWISE運(yùn)算符在帶符號(hào)的32位整數(shù)上運(yùn)算,因此將轉(zhuǎn)換大數(shù)字,例如:


1234567890  | 0 => 1234567890

12345678901 | 0 => -539222987


查看完整回答
反對(duì) 回復(fù) 2019-09-18
?
ITMISS

TA貢獻(xiàn)1871條經(jīng)驗(yàn) 獲得超8個(gè)贊

注意:您不能Math.floor()用作截?cái)嗟奶娲?,因?yàn)镸ath.floor(-3.1) = -4而不是-3!!


截?cái)嗟恼_替換將是:


function truncate(value)

{

    if (value < 0) {

        return Math.ceil(value);

    }


    return Math.floor(value);

}


查看完整回答
反對(duì) 回復(fù) 2019-09-18
  • 3 回答
  • 0 關(guān)注
  • 946 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)