产生随机数的问题
Trouble generating random numbers?
rndmBid=rand() % (sellPtr->sellPrice + (1.25*sellPtr->startPrice));
这行怎么了?除了1.25
(显然),其他都是整数,编译器给出一个错误,说invalid operands of types 'int' and 'double' to binary 'operator%'.
我试着改变startPrice
和rndmBid
加倍,没有运气。有什么建议吗?
一旦将double
引入到算术表达式中,所有内容都被提升/转换为double。所以你需要转换回整数:
rndmBid = rand() % static_cast<int>( ... );
(我相信你意识到你的随机数不会均匀分布。)
(sellPtr->sellPrice + (1.25*sellPtr->startPrice)
是双精度体,因为(1.25*sellPtr->startPrice)
的结果是双精度体,因为1.25
是双精度体。将结果强制转换为int,它将编译:
rndmBid=rand() % static_cast<int>(sellPtr->sellPrice + (1.25*sellPtr->startPrice));
rhs返回的是双精度类型,而%
只能处理整数。将结果转换为整数:
rand() % static_cast<int>(sellPtr->sellPrice + (1.25 * sellPtr->startPrice));
您是在向双精度体添加int型,因此结果是双精度体,不能与%
操作符一起使用。
要解决这个问题,您需要执行:
rndmBid=rand() % ((int)(sellPtr->sellPrice + (1.25*sellPtr->startPrice)));
相关文章:
- 警告处理为错误这里有什么问题
- 最小硬币更换问题(自上而下方法)
- 为"adjacent"变量赋值时出现问题
- 我的神经网络不起作用 [XOR 问题]
- 为什么随机数生成器不在void函数中随机化数字,而在main函数中随机化
- 整数不会重复超过随机数
- 在Ubuntu 16.04上安装Cilk时出现问题
- C++我的数学有什么问题,为什么我的代码不能正确循环
- Rand() 没有显示随机数,请帮助我了解出了什么问题:)
- 随机数有问题
- 生成 32 位随机数时出现问题
- 有关使用 boost 生成正常随机数的问题
- 类中的随机数生成器出现问题
- C++循环中调用伪随机数生成器函数 - 常量种子问题
- 在没有参数的情况下调用构造函数时生成随机数的问题
- 生成随机数并插入已包含n个数的数组时出现性能问题
- 在Mac上使用Xcode用c++生成随机数的问题
- c++中随机数的播种问题
- 产生随机数的问题
- 用CUDA通过拒绝方法生成随机数.性能问题