以下简单代码
int generated;
generated = (random() % 100) + 1;
给出一个精度损失的警告标志,'long'到'int',所以我一直通过重写赋值代码来纠正它
generated = ((int)random() % 100) + 1;
这是纠正问题的有效方法,还是我只是在别处掩盖错误?
答案 0 :(得分:6)
你也可以使用long来表示常量:
generated = (random() % 100L) + 1L;
请注意,这假设生成的时间很长。
编辑:由于生成的是一个int,您只需在完成后进行转换:
generated = (int)((random() % 100L) + 1L);
答案 1 :(得分:2)
在您的示例中,您将过早地截断random()
结果。你需要施放mod操作。
int generated;
generated = (int)(random() % 100) + 1;