下面是我的代码:
x = fmodf((float)rand(), (float)(1/sqsize)) + x1;问题是,当sqsize是4的平方倍数的倍数(例如4,16,64)时,它总是返回相同的数字。sqsize是倍数的平方根(因此对于4是2,对于16是4,对于64是8,依此类推)。
x1定义为:
x1 = fmodf(value,sqsize)/sqsize;其中value等于0-sqsize^2中的数字。
你知道为什么我总是得到相同的值吗?谢谢。
发布于 2015-01-27 08:47:36
Try (float)(1.0/sqsize) -在当前计算出1/sqsize之前,您正在使用的(float)强制转换不会执行任何操作。这意味着它可能会一直求值为0。
https://stackoverflow.com/questions/28161387
复制相似问题