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