如何随机产生两数之间的浮点数,比如 1-5之间的浮点数,6-100之间的浮点数?
其实求浮点数的核心思想也是将浮点数转化为整数,求出随机数之后,再转换为浮点数。
不多说了直接上代码:
/**
* samllNum: 两数中的最小值
* bigNum: 两数中的最大值
* precision: 精度值,如:精确1位小数,precision参数值为10; 两位小数precision参数值为100;
*/
- (float)randomBetween:(float)smallNum AndBigNum:(float)bigNum AndPrecision:(NSInteger)precision{
//求两数之间的差值
float subtraction = bigNum - smallNum;
//取绝对值
subtraction = ABS(subtraction);
//乘以精度的位数
subtraction *= precision;
//在差值间随机
float randomNumber = arc4random() % ((int) subtraction + 1);
//随机的结果除以精度的位数
randomNumber /= precision;
//将随机的值加到较小的值上
float result = MIN(smallNum, bigNum) + randomNumber;
//返回结果
return result;
}