Clarify cast functions (#2041)

This commit is contained in:
Joe Mooring 2023-04-03 13:57:02 -07:00 committed by GitHub
parent 03fd1d4043
commit 2a37a1d218
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 99 additions and 26 deletions

View File

@ -1,17 +1,45 @@
--- ---
title: float title: float
description: Creates a `float` from the argument passed into the function. description: Casts a value to a decimal (base 10) floating point value.
categories: [functions] categories: [functions]
menu: menu:
docs: docs:
parent: functions parent: functions
keywords: [strings,floats] keywords: [cast,strings,floats]
signature: ["float INPUT"] signature: ["float INPUT"]
relatedfuncs: [] relatedfuncs: []
--- ---
Useful for turning strings into floating point numbers. With a decimal (base 10) input:
```go-html-template ```go-html-template
{{ float "1.23" }} → 1.23 {{ float 11 }} → 11 (float64)
{{ float "11" }} → 11 (float64)
{{ float 11.1 }} → 11.1 (float64)
{{ float "11.1" }} → 11.1 (float64)
{{ float 11.9 }} → 11.9 (float64)
{{ float "11.9" }} → 11.9 (float64)
```
With a binary (base 2) input:
```go-html-template
{{ float 0b11 }} → 3 (float64)
```
With an octal (base 8) input (use either notation):
```go-html-template
{{ float 011 }} → 9 (float64)
{{ float "011" }} → 11 (float64)
{{ float 0o11 }} → 9 (float64)
```
With a hexadecimal (base 16) input:
```go-html-template
{{ float 0x11 }} → 17 (float64)
``` ```

View File

@ -1,41 +1,51 @@
--- ---
title: int title: int
description: Creates an `int` from the argument passed into the function. description: Casts a value to a decimal (base 10) integer.
categories: [functions] categories: [functions]
menu: menu:
docs: docs:
parent: functions parent: functions
keywords: [strings,integers] keywords: [cast,strings,integers]
signature: ["int INPUT"] signature: ["int INPUT"]
relatedfuncs: [] relatedfuncs: []
--- ---
Useful for turning strings into numbers. With a decimal (base 10) input:
```go-html-template ```go-html-template
{{ int "123" }} → 123 {{ int 11 }} → 11 (int)
{{ int "11" }} → 11 (int)
{{ int 11.1 }} → 11 (int)
{{ int 11.9 }} → 11 (int)
``` ```
{{% note "Usage Note" %}} With a binary (base 2) input:
If the input string is supposed to represent a decimal number, and if it has
leading 0's, then those 0's will have to be removed before passing the string
to the `int` function, else that string will be tried to be parsed as an octal
number representation.
The `strings.TrimLeft` can be used for this purpose.
```go-html-template ```go-html-template
{{ int ("0987" | strings.TrimLeft "0") }} {{ int 0b11 }} → 3 (int)
{{ int ("00987" | strings.TrimLeft "0") }} {{ int "0b11" }} → 3 (int)
``` ```
### Explanation With an octal (base 8) input (use either notation):
The `int` function eventually calls the `ParseInt` function from the Go library ```go-html-template
`strconv`. {{ int 011 }} → 9 (int)
{{ int "011" }} → 9 (int)
From its [documentation](https://golang.org/pkg/strconv/#ParseInt): {{ int 0o11 }} → 9 (int)
{{ int "0o11" }} → 9 (int)
```
> the base is implied by the string's prefix: base 16 for "0x", base 8 for "0", With a hexadecimal (base 16) input:
> and base 10 otherwise.
```go-html-template
{{ int 0x11 }} → 17 (int)
{{ int "0x11" }} → 17 (int)
```
{{% note %}}
Values with a leading zero are octal (base 8). When casting a string representation of a decimal (base 10) number, remove leading zeros:
`{{ strings.TrimLeft "0" "0011" | int }} → 11`
{{% /note %}} {{% /note %}}

View File

@ -1,13 +1,48 @@
--- ---
title: string title: string
description: Creates a string from the argument passed to the function description: Cast a value to a string.
categories: [functions] categories: [functions]
menu: menu:
docs: docs:
parent: functions parent: functions
keywords: [strings] keywords: [cast,strings]
signature: ["string INPUT"] signature: ["string INPUT"]
relatedfuncs: [] relatedfuncs: []
--- ---
* `{{ string "BatMan" }}` → "BatMan" With a decimal (base 10) input:
```go-html-template
{{ string 11 }} → 11 (string)
{{ string "11" }} → 11 (string)
{{ string 11.1 }} → 11.1 (string)
{{ string "11.1" }} → 11.1 (string)
{{ string 11.9 }} → 11.9 (string)
{{ string "11.9" }} → 11.9 (string)
```
With a binary (base 2) input:
```go-html-template
{{ string 0b11 }} → 3 (string)
{{ string "0b11" }} → 0b11 (string)
```
With an octal (base 8) input (use either notation):
```go-html-template
{{ string 011 }} → 9 (string)
{{ string "011" }} → 011 (string)
{{ string 0o11 }} → 9 (string)
{{ string "0o11" }} → 0o11 (string)
```
With a hexadecimal (base 16) input:
```go-html-template
{{ string 0x11 }} → 17 (string)
{{ string "0x11" }} → 0x11 (string)
```