所以我有以下代码: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