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