摘要:隨便逛了一下知乎和思否的博文,大都沒回答到點上。當比較和時,實際比較的是轉(zhuǎn)成進制,看上去是結(jié)果很明顯啦參考資料
隨便逛了一下知乎和思否的博文,大都沒回答到點上。
I.浮點數(shù)的二進制存儲采用 IEEE 754 規(guī)范來存儲浮點數(shù):
1位【正負符號】+11位【指數(shù)】+52位【有效數(shù)字】,如下圖
由于0.1.toString(2)=0.0001100110011001100110011001100110011001100110011001101
所以
0.1 = 2^-4 * [1].1001100110011001100110011001100110011001100110011010
0.2 = 2^-3 * [1].1001100110011001100110011001100110011001100110011010
鐵律是52位有效數(shù)字,也就是:
0.1 = 2^-3 * 0.1100110011001100110011001100110011001100110011001101(0) 0.2 = 2^-3 * 1.1001100110011001100110011001100110011001100110011010 sum = 2^-2 * 1.0011001100110011001100110011001100110011001100110011(1)
由于有效數(shù)字變成了53位,根據(jù)IEEE754 rounding mode 的 Round to Nearest,若x在a和b之間,選擇最低有效位為零的值。
a = 2^-2 * 1.0011001100110011001100110011001100110011001100110011 x = 2^-2 * 1.0011001100110011001100110011001100110011001100110011(1) b = 2^-2 * 1.0011001100110011001100110011001100110011001100110100
當比較0.1+0.2 和 0.3時,實際比較的是
0.1 + 0.2 => 0:01111111101:0011001100110011001100110011001100110011001100110[100] 0.3 => 0:01111111101:0011001100110011001100110011001100110011001100110[011]
轉(zhuǎn)成10進制,看上去是:
0.1 + 0.2 => 0.300000000000000044408920985006... 0.3 => 0.299999999999999988897769753748...
結(jié)果很明顯啦
參考資料:
https://stackoverflow.com/que...
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/102151.html
摘要:吐槽一句,大二的專業(yè)課數(shù)字邏輯電路終于用在工作上了。,整數(shù)位為,且精度只到十分位,因此是。如果是不限精度的話,轉(zhuǎn)換后的二進制數(shù)應(yīng)該是無限循環(huán)。再看一下百科給出的標準因此,的類型,最高的位是符號位,接著的位是指數(shù),剩下的位為有效數(shù)字。 showImg(https://segmentfault.com/img/remote/1460000011902479?w=600&h=600); 用一...
摘要:寫在前面可能你會不相信,我是從玩中過來的,我覺得有必要記錄一下,這個坑還非踩不可為了說的清楚一點兒,我多鋪墊一點兒,先說說數(shù)組維度的理解引子老鐵們猜一猜長啥樣我猜你還沒到點我到底想說啥,還是一頭霧水,對吧哈哈別揍我,關(guān)子賣的挺大,我到底想說 寫在前面 可能你會不相信,我是從玩pytorch中過來的,我覺得有必要記錄一下,transpose這個坑還非踩不可,為了說的清楚一點兒,我多鋪墊一...
閱讀 3128·2021-11-22 13:54
閱讀 863·2021-11-04 16:08
閱讀 4683·2021-10-11 11:09
閱讀 3636·2021-09-22 16:05
閱讀 997·2019-08-30 15:54
閱讀 422·2019-08-30 15:44
閱讀 627·2019-08-30 14:05
閱讀 1045·2019-08-30 12:46