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

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

如何處理JavaScript中的浮點(diǎn)數(shù)精度?

如何處理JavaScript中的浮點(diǎn)數(shù)精度?

我有以下虛擬測(cè)試腳本:function test(){     var x = 0.1 * 0.2;     document.write(x);}test();這將打印結(jié)果0.020000000000000004,只應(yīng)打印0.02(如果您使用計(jì)算器)。據(jù)我所知,這是由于浮點(diǎn)乘法精度的誤差。有沒(méi)有人有一個(gè)很好的解決方案,以便在這種情況下,我得到正確的結(jié)果0.02?我知道有類(lèi)似的函數(shù)toFixed或舍入將是另一種可能性,但我想真正打印整個(gè)數(shù)字沒(méi)有任何切割和舍入。只是想知道你們其中一個(gè)人是否有一些漂亮,優(yōu)雅的解決方案。當(dāng)然,否則我會(huì)轉(zhuǎn)到大約10位左右。如何處理JavaScript中的浮點(diǎn)數(shù)精度?
查看完整描述

4 回答

?
阿晨1998

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

浮點(diǎn)指南

我該怎么做才能避免這個(gè)問(wèn)題?

這取決于你正在做什么樣的計(jì)算。

  • 如果你真的需要你的結(jié)果準(zhǔn)確地加起來(lái),特別是當(dāng)你使用錢(qián)時(shí):使用特殊的十進(jìn)制數(shù)據(jù)類(lèi)型。

  • 如果您只是不想看到所有這些額外的小數(shù)位:只需將結(jié)果格式化為顯示它時(shí)固定的小數(shù)位數(shù)。

  • 如果您沒(méi)有可用的十進(jìn)制數(shù)據(jù)類(lèi)型,則可以選擇使用整數(shù),例如完全以美分進(jìn)行貨幣計(jì)算。但這是更多的工作,并有一些缺點(diǎn)。

請(qǐng)注意,第一點(diǎn)僅適用于您確實(shí)需要特定的精確十進(jìn)制行為。大多數(shù)人并不需要這樣,他們只是因?yàn)樗麄兊某绦驘o(wú)法正常使用1/10這樣的數(shù)字而沒(méi)有意識(shí)到如果它以1/3發(fā)生它們甚至不會(huì)眨眼同樣的錯(cuò)誤。

如果第一點(diǎn)確實(shí)適用于您,請(qǐng)使用BigDecimal for JavaScript,這根本不是優(yōu)雅的,但實(shí)際上解決了問(wèn)題而不是提供不完美的解決方法。


查看完整回答
反對(duì) 回復(fù) 2019-05-22
?
藍(lán)山帝景

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

我喜歡Pedro Ladaria的解決方案并使用類(lèi)似的東西。

function strip(number) {
    return (parseFloat(number).toPrecision(12));}

與Pedros解決方案不同,這將向上舍入0.999 ...重復(fù)并且在最低有效數(shù)字上精確到正/負(fù)1。

注意:處理32位或64位浮點(diǎn)數(shù)時(shí),應(yīng)使用toPrecision(7)和toPrecision(15)以獲得最佳結(jié)果。有關(guān)原因,請(qǐng)參閱此問(wèn)題


查看完整回答
反對(duì) 回復(fù) 2019-05-22
?
慕森卡

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

你只是在進(jìn)行乘法運(yùn)算嗎?如果是這樣,那么你可以利用一個(gè)關(guān)于十進(jìn)制算術(shù)的巧妙秘密。就是這樣NumberOfDecimals(X) + NumberOfDecimals(Y) = ExpectedNumberOfDecimals。也就是說(shuō),如果我們有,0.123 * 0.12那么我們知道將有5個(gè)小數(shù)位,因?yàn)?code>0.123有3個(gè)小數(shù)位并且0.12有兩個(gè)。因此,如果JavaScript給了我們一個(gè)數(shù)字,0.014760000002我們可以安全地舍入到小數(shù)點(diǎn)后第五位,而不用擔(dān)心會(huì)失去精度。


查看完整回答
反對(duì) 回復(fù) 2019-05-22
  • 4 回答
  • 0 關(guān)注
  • 746 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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