获取随机浮点数 - GetRandomDouble
函数简介
获取指定范围内的随机浮点数。此函数使用线程独立的随机种子,确保每个线程的随机数生成都是独立的,避免多线程环境下的随机数冲突问题。适用于需要高精度随机数的场景。
接口名称
GetRandomDouble
DLL调用
double GetRandomDouble(long instance, double min, double max)
参数说明
参数名 | 类型 | 说明 |
---|---|---|
instance | 长整数型 | OLAPlug对象的指针,由 CreateCOLAPlugInterFace 接口生成。 |
min | 双精度浮点数 | 随机数的最小值(包含) |
max | 双精度浮点数 | 随机数的最大值(包含) |
示例
// 生成0.0到1.0之间的随机浮点数
double randomDouble = GetRandomDouble(ola, 0.0, 1.0);
printf("随机浮点数: %f\n", randomDouble);
// 生成-1.0到1.0之间的随机浮点数
double randomRange = GetRandomDouble(ola, -1.0, 1.0);
printf("随机范围数: %f\n", randomRange);
// 生成概率值(0.0到1.0)
double probability = GetRandomDouble(ola, 0.0, 1.0);
if (probability < 0.5) {
printf("概率小于50%%\n");
} else {
printf("概率大于等于50%%\n");
}
// 生成坐标范围内的随机位置(浮点精度)
double randomX = GetRandomDouble(ola, 100.0, 800.0);
double randomY = GetRandomDouble(ola, 100.0, 600.0);
printf("随机坐标: (%.2f, %.2f)\n", randomX, randomY);
// 生成角度值(0到360度)
double randomAngle = GetRandomDouble(ola, 0.0, 360.0);
printf("随机角度: %.2f度\n", randomAngle);
返回值
double: 返回指定范围内的随机浮点数
注意事项
- 返回的随机数包含最小值和最大值
- 每个线程使用独立的随机种子,确保多线程环境下的随机性
- 适用于需要高精度随机数的场景,如概率计算、模拟仿真等
- 与 GetRandomNumber 函数配合使用可以实现更复杂的随机数需求
- 浮点数精度取决于系统实现,通常为双精度(64位)
- 建议在程序初始化时调用一次,确保随机种子正确初始化