iOS隨機產生兩數之間的浮點數

如何隨機產生兩數之間的浮點數,好比 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;
}
相關文章
相關標籤/搜索