今天正好碰到除法運算結果一直是0的情況,所以記錄下來,希望對大家有用。
示例
//結果為0
CGFloat tFloat = 10/1000;
原因
計算機中的運算有個原則:
相同數據類型的值才能進行運算,而且運算結果依然是同一種數據類型。因此,整數除于整數,求出來的結果依然是整數,會損失小數部分。
解決辦法
//結果為0.01
//1
CGFloat tFloat = (CGFloat)10/1000;
//2
CGFloat tFloat = (CGFloat)10.0/1000;
- 對結果進行了類型轉換
- 10.0是浮點型,1000是整型,因此會將4自動類型提升為浮點型后再進行運算