日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

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é)幾點:

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

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

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


 符號位(1 bit) 

指數(shù)(8 bit) 

尾數(shù)(23 bit) 


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


符號位(1 bit) 

指數(shù)(11 bit) 

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

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

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

Comparing for equality

Comparing with epsilon – absolute error

Comparing with epsilon – relative error









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

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多