Home > Article > Backend Development > How to generate random floating point numbers in Golang?
There are two common methods to generate random floating point numbers in Golang: use the math/rand package and call rand.Float64() to generate floating point numbers in the range [0, 1). Use the crypto/rand package to generate a random byte array and convert it to a floating point number, which is suitable for secure randomness scenarios.
There are many ways to generate random floating point numbers in Golang. Today we will introduce the two most commonly used methods.
math/rand
The package provides a variety of methods for generating random numbers, including generating random floating point numbers in the range [0, 1) . Here's how to use it:
package main import ( "fmt" "math/rand" "time" ) func main() { // 设置随机数种子 rand.Seed(time.Now().UnixNano()) // 生成随机浮点数 randomFloat := rand.Float64() fmt.Println(randomFloat) // 输出:0.3456789012345678 }
rand.Float64()
will generate a random floating point number in the range [0, 1).
crypto/rand
package is used to generate secure random numbers and is also very suitable for generating random floating point numbers. Here's how to use it:
package main import ( "crypto/rand" "encoding/binary" "fmt" ) func main() { // 生成随机字节数组 bytes := make([]byte, 8) _, err := rand.Read(bytes) if err != nil { panic(err) } // 将字节数组转换成浮点数 bits := binary.BigEndian.Uint64(bytes) randomFloat := float64(bits) / float64(1<<64) fmt.Println(randomFloat) // 输出:0.3456789012345678 }
crypto/rand.Read()
will generate a random byte array, which we then convert to a float.
Suppose we have an e-commerce application that needs to generate random discounts. We can use the following code:
package main import ( "fmt" "math/rand" "time" ) func main() { // 设置随机数种子 rand.Seed(time.Now().UnixNano()) // 生成随机折扣(0.01 到 0.5) discount := 0.01 + rand.Float64() * 0.49 fmt.Println(discount) // 输出:0.23456789012345678 }
This code will generate a random floating point number in the range [0.01, 0.5), which can be used as a random discount.
The above is the detailed content of How to generate random floating point numbers in Golang?. For more information, please follow other related articles on the PHP Chinese website!