如何在C中划分数字?

时间:2014-07-25 21:24:18

标签: c

double test3 = 1/7;
NSLog(@"The value of test3 = %1.6f",test3);

结果:

The value of test3 = 0.000000

为什么不给它一个分数作为浮动值?它应该说:

The value of test3 = 0.142857

我做错了什么?

1 个答案:

答案 0 :(得分:5)

您必须执行1.0 / 7.01 / 7.01.0 / 7才能使编译器执行浮点除法。

1/7是简单的整数除法,即0。只有整数除法的结果被输出并存储在test3中,如果两个参数都是整数,那么你将得到一个返回的整数。


要包含随机数(如评论中所述):

要在包含下限和上限之间生成一个随机数,请执行以下操作:

int randomNum = lowerBound + arc4random_uniform(upperBound - lowerBound);

请注意,应该使用arc4random_uniform(x)(感谢rmaddy!),因为它优于arc4random() % xrand() % x