随机数生成

因为float计算的时候回有误差,所以建议直接使用int然后再转为float

// 获取Float32随机数
// min 最小值
// max 最小值
// precision 精度 精确小数点后几位
func RandFloat32(min ,max,precision float32) float32 {
    precisionint:=10/precision/10//1/precision除出来的不是10的整数倍尴尬
    min_precision_int:=int(min*precisionint)
    max_precision_int:=int(max*precisionint)
    timens := int64(time.Now().Nanosecond())
    rand.Seed(timens)
    num_precision_float32:=float32(rand.Intn(max_precision_int-min_precision_int)+min_precision_int)
    return num_precision_float32/(precisionint)
}
// 获取float64随机数
// min 最小值
// max 最小值
// precision 精度 精确小数点后几位
func RandFloat64(min ,max,precision float64) float64 {
    precisionint:=1/precision
    min_precisionint_int:=int(min*precisionint)
    max_precisionint_int:=int(max*precisionint)
    timens := int64(time.Now().Nanosecond())
    rand.Seed(timens)
    num_precisionint_float64:=float64(rand.Intn(max_precisionint_int-min_precisionint_int)+min_precisionint_int)
    return num_precisionint_float64/precisionint
}
// 获取Int随机数
// min 最小值
// max 最小值
func RandInt(min ,max int) int {
    timens := int64(time.Now().Nanosecond())
    rand.Seed(timens)
    return rand.Intn(max-min)+min
}
// 获取Int32随机数
// min 最小值
// max 最小值
func RandInt32(min ,max int32) int32 {
    timens := int64(time.Now().Nanosecond())
    rand.Seed(timens)
    return rand.Int31n(max-min)+min
}
// 获取Int64随机数
// min 最小值
// max 最小值
func RandInt64(min ,max int64) int64 {
    timens := int64(time.Now().Nanosecond())
    rand.Seed(timens)
    return rand.Int63n(max-min)+min
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容