美文网首页
随机数生成

随机数生成

作者: 吃猫的鱼0 | 来源:发表于2018-11-21 17:38 被阅读0次

因为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
}

相关文章

网友评论

      本文标题:随机数生成

      本文链接:https://www.haomeiwen.com/subject/flncqqtx.html