iOS CGFloat結果為+inf

今天發現一個bug,順便記錄一下
需求:展示一張圖片(服務器端提供一個img_ratio字段來告訴你寬高比,圖片寬度是屏幕寬度)

我這樣寫的

 CGFloat imageHeight =HSWidth/[imgDic[@"img_ratio"] floatValue];
 [image mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(self.imageBackView).offset(self.cellHeight+MarginNormal);
                make.left.right.equalTo(self.imageBackView);
                make.height.mas_equalTo(imageHeight);
            }];

Bug:發現服務器img_ratio 為0時崩潰在masonry布局上
斷點輸出

屏幕快照 .png

解決:就是判斷一下等于0然后return嘍

if ([imgDic[@"img_ratio"] floatValue] == 0) {
                return;
            }

原因:0作為被除數然后被強轉成了float類型導致得到的結果是無窮大,但是兩個整型數相運算得到是還是整型

//結果為0.468
CGFloat tFloat = (CGFloat)375/800;
//結果為0
CGFloat tFloat = 375/800;
//結果為0
CGFloat tFloat = 1/0;
//結果為+lnf 代表正無窮
CGFloat tFloat = (CGFloat)1/0;

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 發現 關注 消息 iOS 第三方庫、插件、知名博客總結 作者大灰狼的小綿羊哥哥關注 2017.06.26 09:4...
    肇東周閱讀 12,246評論 4 61
  • 7月5日《色眼識人》 【day116盈盈】 之前在做性格測試的時候,順便發了一份給朋友,他的測試結果就是藍色。藍色...
    蘇小盈閱讀 263評論 0 0
  • 結婚3年了,時間就像個會變魔法的人,有時,讓人覺得一切都來得太快,穿上婚紗的日子仿佛還在昨天,孩子已經2歲了;有時...
    馬貝格閱讀 6,775評論 78 123
  • 古有神土曰胤皓,分中州,東離,西涼,北落,南湘,萬民和樂,正是盛世佳年。然五百年前,魔神出世,攪亂江湖,掀起...
    upc一線牽閱讀 173評論 0 1