【发布时间】:2015-11-01 22:42:41
【问题描述】:
我有:
r = ((float)(rand()/(float)(RAND_MAX)) * BOUND);
这也给出了同样的警告:
r = ((rand()/(float)(RAND_MAX)) * BOUND);
还有警告:
conversion to ‘float’ from ‘int’ may alter its value
任何可能的修复?
【问题讨论】:
-
使用
double。float太不精确 - 可能会丢失来自int的宝贵信息。你为什么要投到float而不是double呢?或者也许使用1.0*rand()/RAND_MAX * BOUND; -
因为起初它是双倍的,但试图修复它.. 做了一些愚蠢的事情
-
我尝试编译这个。我将 BOUND 定义为 100。没有收到任何警告。这是在 OSX 上的 Xcode 7.1 中编译的。你是在什么环境下编译的?
标签: c random type-conversion c99