今天正好碰到除法運(yùn)算結(jié)果一直是0的情況端壳,所以記錄下來颂翼,希望對大家有用。
示例
//結(jié)果為0
CGFloat tFloat = 10/1000;
原因
計(jì)算機(jī)中的運(yùn)算有個原則:
相同數(shù)據(jù)類型的值才能進(jìn)行運(yùn)算剥槐,而且運(yù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是浮點(diǎn)型温圆,1000是整型,因此會將4自動類型提升為浮點(diǎn)型后再進(jìn)行運(yùn)算