inf和nan含義如下:本人出現的情況:inf表示「無窮大」,是infinite的縮寫。nan表示「無效數字」,是not a number的縮寫。
2.inf是不會崩潰的,但nan是會崩潰的
仔細研究後發現,原來是我獲取的 uiimage 物件 等於 nil 了,以至於 image.size.height 值 和 image.size.width 的值,都拿不到了;那麼image的寬高比 計算出來的 imageview 的 imageheight 的值也就 成 nan 了。
//部分**
[cell.photo sd_setimagewithurl:[nsurl urlwithstring:ad.imageurl] placeholderimage:[uiimage imagenamed:@"defaultimage"] completed:^(uiimage *image, nserror *error, emsdimagecachetype cachetype, nsurl *imageurl)
inf一般是因為得到的數值,超出浮點數的表示範圍(溢位,即階碼部分超過其能表示的最大值);
而nan一般是因為對浮點數進行了未定義的操作,如對-1開方。
除以0sizewithfont的字串為nil
數學函式不正確運算
1.0/0.0等於inf,-1.0/0.0等於-inf,0.0+inf=inf;
對負數開方sqrt(-1.0)、對負數求對數(log(-1.0))、0.0/0.0、0.0*inf、inf/inf、inf-inf這些操作都會得到nan。(0/0會產生操作異常;0.0/0.0不會產生操作異常,而是會得到nan)
找到呼叫引數nan或者inf 的語句加入邏輯判斷(運用math類裡的isnan):
if (!isnan(cgrectgetmidx(newframe))) 就是當cgrectgetmidx不為無效引數呼叫此句.這樣就可以解決崩潰了
2.( 得到inf時就檢視是否有溢位或者除以0,得到nan時就檢視是否有非法操作。)
nan==nan 結果是0或false,即不能和nan進行比較,和nan進行比較得到的結果總是false或0。所以可以用函式: int isnumber(double d)來判斷d是否為nan,若d是nan則返回0,否則返回非零值
float ecg;
if(isnan(ecg))
else
//inf同理
if (isinf(height))
json屬性值為null時轉換
解決思路 將屬性值 null 轉換成 解決方法如下 1.經過搜尋可以用下面的方法 gson gson new gsonbuilder serializenulls create 但是這個卻無法解決反序列問題,怎麼解決呢?我在stackoverflow上找到了這個問題,親測有效 2.解決辦法如下 gs...
物件key值為數字時的處理
先說解決辦法 通過a key 的方式獲取。具體場景是這樣的 有乙個物件的key是數字組成的,這時候使用a.b的形式就不能獲取到相應的value值,如下圖 a.111 會報錯。特別說明 a 111 和a 111 兩種寫法都是一樣的,沒有什麼區別,此用法與陣列用下標訪問是相同的。請注意,如果使用方括號運...
PathVariable為空時指定預設值的操作
pathvariable為空時指定預設值,可以指定多個匹配路徑,然後設定引數非必要的,就可以了,例子如下 requestmapping value timeline public modelandview gettimeline pathvariable value uid string artic...