小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

iOS double類型不穩(wěn)定的解決辦法

 沒原創(chuàng)_去搜索 2015-11-03

目前制作的app出現(xiàn)了,上述圖片的bug,分享下解決心得,及要注意的地方!

出現(xiàn)問題的代碼:

之后改進(jìn)的代碼:







=====================================




float double的內(nèi)存表示及比較大小的方法

參考:

float和double類型的內(nèi)存分布和比較方法收藏

Comparing floating point numbers  

總結(jié)幾點(diǎn):

0. float占4byte,精度是6~7位;double占8byte,精度是15~16位。 

1. C/C++的浮點(diǎn)數(shù)據(jù)類型有float和double兩種。它們?cè)趦?nèi)存中是以科學(xué)計(jì)數(shù)法的結(jié)果來存儲(chǔ)的。 

類型float大小為4字節(jié),即32位,內(nèi)存中的存儲(chǔ)方式如下: 


 符號(hào)位(1 bit) 

指數(shù)(8 bit) 

尾數(shù)(23 bit) 


類型double大小為8字節(jié),即64位,內(nèi)存布局如下: 


符號(hào)位(1 bit) 

指數(shù)(11 bit) 

尾數(shù)(52 bit) 
  
符號(hào)位決定浮點(diǎn)數(shù)的正負(fù),0正1負(fù)。 
指數(shù)和尾數(shù)均從浮點(diǎn)數(shù)的二進(jìn)制科學(xué)計(jì)數(shù)形式中獲取。 

2. 關(guān)于比較大小

一般情況下用一個(gè)absolute epsilon value來比較(if (fabs(result - expectedResult) < 0.00001))就夠了。但是在某些對(duì)數(shù)字精度有特殊要求的domain,比如graphic,需要用更合理的方法。具體,參見引用文獻(xiàn)2.

Comparing for equality

Comparing with epsilon – absolute error

Comparing with epsilon – relative error









    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多