在C语言中如何划分数字?
结果:在C语言中如何划分数字?,c,C,结果: test3的值=0.000000 为什么它不给我一个分数作为浮点值?它应该说: test3的值=0.142857 我做错了什么?编译器必须执行1.0/7.0或1/7.0或1.0/7 1/7是简单的整数除法,即0。只有整数除法的结果被强制转换并存储在test3中,如果两个参数都是整数,则返回一个整数 包括随机数(如评论中所述): 要在包含下限和独占上限之间生成随机数,请执行以下操作: double test3 = 1/7; NSLog(@"The value of test3 = %1.
test3的值=0.000000
为什么它不给我一个分数作为浮点值?它应该说:
test3的值=0.142857
我做错了什么?编译器必须执行
1.0/7.0
或1/7.0
或1.0/7
1/7
是简单的整数除法,即0
。只有整数除法的结果被强制转换并存储在test3
中,如果两个参数都是整数,则返回一个整数
包括随机数(如评论中所述): 要在包含下限和独占上限之间生成随机数,请执行以下操作:
double test3 = 1/7;
NSLog(@"The value of test3 = %1.6f",test3);
请注意,应该使用
arc4random\u uniform(x)
(谢谢rmaddy!),因为它优于arc4random()%x
和rand()%x
,,我必须这样做,例如,rand()*1.0/rand()*1.0,以便用两个变量获得相同的效果。@Sparky我不确定,我会这样明确地强制转换它们:(double)rand()/(double)rand()
您实际上可以只执行1/7.0
或1.0/7
。只要一个值是浮点值,您就可以了。@Sparkyrandom()&1500
不会返回介于0和1500之间的“公平”随机数。执行+random()%()
如前所述,在下限和上限之间生成一个随机数。请注意,下限是包含的,上限是独占的。还请注意,使用arc4random()
更好,因为它优于rand()
。使用arc4random\u uniform(X)更好
而不是arc4random()%X
。
int randomNum = lowerBound + arc4random_uniform(upperBound - lowerBound);