iOS上的高精度随机数

时间:2012-01-02 22:23:39

标签: iphone objective-c ios random arc4random

我已经尝试了一段时间,但到目前为止还没有运气。

在iOS上检索两个非常精确的数字之间的随机数的最简单方法是什么?

例如,我想要一个介于41.37783830549337和41.377730629131634之间的随机数,我将如何实现这一目标?

提前非常感谢你!

编辑:我试过了:

double min = 41.37783830549337;
double max = 41.377730629131634;
double test = ((double)rand() / RAND_MAX) * (max - min) + min;
NSLog(@"Min:%lf, max:%lf, result:%lf",min,max,test);

但结果并不像我希望的那么精确,结果就像这样::

Min:41.377838, max:41.377731, result:41.377838

1 个答案:

答案 0 :(得分:6)

您可以将rand的输出标准化为您想要的任何范围:

((double)rand() / RAND_MAX) * (max - min) + min

[注意:这是纯C,我假设它在Obj-C中等效地工作。]

[注意2:将double替换为您选择的数据类型。]

[注意3:将rand替换为您选择的随机数源。]