gpt4 book ai didi

Swift 在 0 和 1 之间随机 float

转载 作者:行者123 更新时间:2023-11-30 13:23:25 24 4
gpt4 key购买 nike

在 Swift 中,我试图获得 0 到 1 之间的随机 float ,但我似乎无法让类型转换起作用。

func randomCGFloat() -> CGFloat {
return CGFloat(arc4random()) / UINT32_MAX
}

我收到“CGFloat”无法转换为“UInt8”错误

运行 Xcode 6。

最佳答案

这是Int、Double、Float、CGFloat随机数的扩展

Swift 3 & 4 & 5 语法

import Foundation
import CoreGraphics

// MARK: Int Extension

public extension Int {

/// Returns a random Int point number between 0 and Int.max.
static var random: Int {
return Int.random(n: Int.max)
}

/// Random integer between 0 and n-1.
///
/// - Parameter n: Interval max
/// - Returns: Returns a random Int point number between 0 and n max
static func random(n: Int) -> Int {
return Int(arc4random_uniform(UInt32(n)))
}

/// Random integer between min and max
///
/// - Parameters:
/// - min: Interval minimun
/// - max: Interval max
/// - Returns: Returns a random Int point number between 0 and n max
static func random(min: Int, max: Int) -> Int {
return Int.random(n: max - min + 1) + min

}
}

// MARK: Double Extension

public extension Double {

/// Returns a random floating point number between 0.0 and 1.0, inclusive.
static var random: Double {
return Double(arc4random()) / 0xFFFFFFFF
}

/// Random double between 0 and n-1.
///
/// - Parameter n: Interval max
/// - Returns: Returns a random double point number between 0 and n max
static func random(min: Double, max: Double) -> Double {
return Double.random * (max - min) + min
}
}

// MARK: Float Extension

public extension Float {

/// Returns a random floating point number between 0.0 and 1.0, inclusive.
static var random: Float {
return Float(arc4random()) / 0xFFFFFFFF
}

/// Random float between 0 and n-1.
///
/// - Parameter n: Interval max
/// - Returns: Returns a random float point number between 0 and n max
static func random(min: Float, max: Float) -> Float {
return Float.random * (max - min) + min
}
}

// MARK: CGFloat Extension

public extension CGFloat {

/// Randomly returns either 1.0 or -1.0.
static var randomSign: CGFloat {
return (arc4random_uniform(2) == 0) ? 1.0 : -1.0
}

/// Returns a random floating point number between 0.0 and 1.0, inclusive.
static var random: CGFloat {
return CGFloat(Float.random)
}

/// Random CGFloat between 0 and n-1.
///
/// - Parameter n: Interval max
/// - Returns: Returns a random CGFloat point number between 0 and n max
static func random(min: CGFloat, max: CGFloat) -> CGFloat {
return CGFloat.random * (max - min) + min
}
}

用途:

let randomNumDouble  = Double.random(min: 0.00, max: 23.50)
let randomNumInt = Int.random(min: 56, max: 992)
let randomNumFloat = Float.random(min: 6.98, max: 923.09)
let randomNumCGFloat = CGFloat.random(min: 6.98, max: 923.09)

关于Swift 在 0 和 1 之间随机 float ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37502050/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com