--- /dev/null
+---
+title: math.Rand
+description: Returns a pseudo-random number in the half-open interval [0.0, 1.0).
+categories: []
+keywords: []
+action:
+ aliases: []
+ related: []
+ returnType: float64
+ signatures: [math.Rand]
+---
+
+The `math.Rand` function returns a pseudo-random number in the [half-open interval] [0.0, 1.0).
+
+```go-html-template
+{{ math.Rand }} → 0.6312770459590062
+```
+
+To generate a random integer in the [closed interval] [0, 5]:
+
+```go-html-template
+{{ math.Rand | mul 6 | math.Floor }}
+```
+
+To generate a random integer in the closed interval [1, 6]:
+
+```go-html-template
+{{ math.Rand | mul 6 | math.Ceil }}
+```
+
+To generate a random float, with one digit after the decimal point, in the closed interval [0, 4.9]:
+
+```go-html-template
+{{ div (math.Rand | mul 50 | math.Floor) 10 }}
+```
+
+To generate a random float, with one digit after the decimal point, in the closed interval [0.1, 5.0]:
+
+```go-html-template
+{{ div (math.Rand | mul 50 | math.Ceil) 10 }}
+```
+
+[closed interval]: /getting-started/glossary/#interval
+[half-open interval]: /getting-started/glossary/#interval
Software design and development efforts that enable [localization](#localization). See the [W3C definition](https://www.w3.org/International/questions/qa-i18n). Abbreviated i18n.
+###### interval
+
+An [interval](https://en.wikipedia.org/wiki/Interval_(mathematics)) is a range of numbers between two endpoints: closed, open, or half-open.
+
+- A _closed_ interval, denoted by brackets, includes its endpoints. For example, [0, 1] is the interval where `0 <= x <= 1`.
+
+- An _open_ interval, denoted by parenthesis, excludes its endpoints. For example, (0, 1) is the interval where `0 < x < 1`.
+
+- A _half-open_ interval includes only one of its endpoints. For example, (0, 1] is the _left-open_ interval where `0 < x <= 1`, while [0, 1) is the _right-open_ interval where `0 <= x < 1`.
+
###### kind
See [page kind](#page-kind).
},
)
+ ns.AddMethodMapping(ctx.Rand,
+ nil,
+ [][2]string{
+ {"{{ math.Rand }}", "0.6312770459590062"},
+ },
+ )
+
ns.AddMethodMapping(ctx.Round,
nil,
[][2]string{
"errors"
"fmt"
"math"
+ "math/rand"
"reflect"
"sync/atomic"
return math.Pow(af, bf), nil
}
+// Rand returns, as a float64, a pseudo-random number in the half-open interval [0.0,1.0).
+func (ns *Namespace) Rand() float64 {
+ return rand.Float64()
+}
+
// Round returns the integer nearest to n, rounding half away from zero.
func (ns *Namespace) Round(n any) (float64, error) {
xf, err := cast.ToFloat64E(n)
ns := nsf(d)
for _, mm := range ns.MethodMappings {
for _, example := range mm.Examples {
- if strings.Contains(example[0], "errorf") {
- // This will fail the build, so skip for now.
- continue
- }
- if strings.Contains(example[0], "transform.XMLEscape") {
- // This will fail the build, so skip for now.
+ // These will fail the build, so skip.
+ if strings.Contains(example[0], "errorf") ||
+ strings.Contains(example[0], "transform.XMLEscape") ||
+ strings.Contains(example[0], "math.Rand") {
continue
}
templates = append(templates, example[0])