c# - 如何使 Random.Range() 步进一定量?
问题描述
这是一个非常简单的问题,但我不知道如何解决它。可以说我有这条线:
Random.Range(2,4);
我希望这不仅可以生成整数,还可以生成一半。我的意思是步长应该是0.5。我希望它仅从以下随机选择:2、2.5、3、3.5 我不想要任何其他十进制数字。有人可以帮忙吗?
解决方案
这是针对您的特定情况的简单解决方案。
var randomNumber = ((float)Random.Range(4, 8)) * 0.5f;
您还可以扩展该方法以使用不同的值。
public float GetRandomFloat(int min, int max, float value = 0.5f)
{
int multipliedMin = (int) (max / value);
int multipliedMax = (int) (max / value);
return ((float) Random.Range(multipliedMin, multipliedMax)) * value;
}
推荐阅读
- c++ - 使用 ->* 调用成员函数失败 noexcept 测试
- java - 使用 Firebase 回收器视图查询,我应该创建什么样的模型
- java - 通过直接更改字节来更改音频流的音量
- powershell - 希望通过另一台机器/自定义脚本执行将 Azure 文件共享映射为 Azure Windows VM 上的映射网络驱动器
- python - keras 在 vgg16 特征上训练 LSTM 模型
- php - 用mysql在php中显示排序数据
- image - 如何使用 ImageMagick 调整图像大小?(苹果系统)
- ruby - Kqueue dirextended 看什么动作?
- android - 如何编写索引?
- c++ - CMake 声明函数对 ExternalProject_Add 的依赖