如何隨機產生兩數之間的浮點數,好比 1-5之間的浮點數,6-100之間的浮點數?
其實求浮點數的核心思想也是將浮點數轉化爲整數,求出隨機數以後,再轉換爲浮點數。dom
很少說了直接上代碼:code
/** * 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; }