所以我有以下代碼:UIProgressView進展乘以一個數字返回奇怪的結果
angle = progbm.progress * 30;
NSLog(@"%d,%f", angle, progbm.progress);
progbm是UIProgressView(從0.0到運行1.0)和角是短。
在其他地方,我有更新進度條的代碼向上或向下0.1。我似乎得到了一些奇怪的結果。這裏是控制檯輸出:
2011-05-14 15:21:25.265 AppTest [768:307] 3,0.100000
2011-05-14 15:21:26.238 AppTest [768:307] 6,0.200000
2011-05-14 15:21:27.245 AppTest [768:307] 9,0.300000
2011-05-14 15:21:28.061 AppTest [768:307] 12,0.400000
2011-05-14 15 :21:28.940 AppTest [768:307] 15,0.500000
2011-05-14 15:21:29.820 AppTest [768:307] 18,0.600000
2011-05-14 15:21:30.716 AppTest [768: 307] 21,0.700000
2011-05-14 15:21:31.644 AppTest [768:307] 24,0.800000
2011-05-14 15:21:32.860 AppTest [768:307] 27,0.900000
2011-05-14 15:21:34.460 AppTest [768:307] 30,1.000000
2011-05-14 15 :21:39.020 AppTest [768:307] 27,0.900000
2011-05-14 15:21:40.173 AppTest [768:307] 23,0.800000
如何0.800000 * 30等於23?
你被一個int乘以一個浮動('progress')('30'),它給你一個浮動,然後你使用INT格式說明'% d'打印它。改用'%f'。 – 2011-05-14 03:37:57
它的好 - 我剛剛在我的計算中添加了一個round(),以確保它給出正確的結果。只是奇怪的行爲。 – sregorcinimod 2011-05-14 03:39:50
@Josh爲什麼他應該這樣做? – 2011-05-14 03:48:28