Arc4random浮动?

And*_*rew 8 random objective-c ios

这样做:

float x = arc4random() % 100;
Run Code Online (Sandbox Code Playgroud)

返回0到100之间的数字的正确结果.

但这样做:

float x = (arc4random() % 100)/100;
Run Code Online (Sandbox Code Playgroud)

返回0.如何让它返回浮点值?

ben*_*der 24

简单地说,您正在进行整数除法,而不是浮点除法,因此您只是得到截断的结果(例如,.123被截断为0).尝试

float x = (arc4random() % 100)/100.0f;
Run Code Online (Sandbox Code Playgroud)


小智 5

您将一个 int 除以一个 int,得到一个 int。您需要将任一转换为浮点数:

float x = (arc4random() % 100)/(float)100;
Run Code Online (Sandbox Code Playgroud)

另请参阅我对模运算符的评论。