Documentation ¶
Overview ¶
Package number formats numbers according to the customs of different locales.
The number formats of this package allow for greater formatting flexibility than passing values to message.Printf calls as is. It currently supports the builtin Go types and anything that implements the Convert interface (currently internal).
p := message.NewPrinter(language.English) p.Printf("%v bottles of beer on the wall.", number.Decimal(1234)) // Prints: 1,234 bottles of beer on the wall. p.Printf("%v of gophers lose too much fur", number.Percent(0.12)) // Prints: 12% of gophers lose too much fur. p := message.NewPrinter(language.Dutch) p.Printf("There are %v bikes per household.", number.Decimal(1.2)) // Prints: Er zijn 1,2 fietsen per huishouden.
The width and scale specified in the formatting directives override the configuration of the formatter.
Index ¶
- type FormatFunc
- type Formatter
- type Option
- func FormatWidth(n int) Option
- func IncrementString(decimal string) Option
- func MaxFractionDigits(max int) Option
- func MaxIntegerDigits(max int) Option
- func MinFractionDigits(min int) Option
- func MinIntegerDigits(min int) Option
- func NoSeparator() Option
- func Pad(r rune) Option
- func PatternOverrides(patterns map[string]string) Option
- func Precision(prec int) Option
- func Scale(decimals int) Option
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type FormatFunc ¶
A FormatFunc formates a number.
func NewFormat ¶
func NewFormat(format FormatFunc, opts ...Option) FormatFunc
NewFormat creates a FormatFunc based on another FormatFunc and new options. Use NewFormat to cash the creation of formatters.
type Formatter ¶
type Formatter struct {
// contains filtered or unexported fields
}
func Decimal ¶
Decimal formats a number as a floating point decimal.
func Engineering ¶
Engineering formats a number using engineering notation, which is like scientific notation, but with the exponent normalized to multiples of 3.
func PerMille ¶
PerMille formats a number as a per mille indication. A value of 1.0 means 1000‰.
func Percent ¶
Percent formats a number as a percentage. A value of 1.0 means 100%.
func Scientific ¶
Scientific formats a number in scientific format.
func (Formatter) Digits ¶
Digits returns information about which logical digits will be presented to the user. This information is relevant, for instance, to determine plural forms.
type Option ¶
type Option option
An Option configures a Formatter.
func IncrementString ¶
IncrementString sets the incremental value to which numbers should be rounded. For instance: Increment("0.05") will cause 1.44 to round to 1.45. IncrementString also sets scale to the scale of the increment.
Example ¶
package main import ( "golang.org/x/text/language" "golang.org/x/text/message" "golang.org/x/text/number" ) func main() { p := message.NewPrinter(language.English) p.Println(number.Decimal(1.33, number.IncrementString("0.50"))) }
Output: 1.50
func MaxFractionDigits ¶
MaxFractionDigits specifies the maximum number of fractional digits.
func MaxIntegerDigits ¶
MaxIntegerDigits limits the number of integer digits, eliminating the most significant digits.
Example ¶
package main import ( "golang.org/x/text/language" "golang.org/x/text/message" "golang.org/x/text/number" ) func main() { const year = 1999 p := message.NewPrinter(language.English) p.Println("Year:", number.Decimal(year, number.MaxIntegerDigits(2))) }
Output: Year: 99
func MinFractionDigits ¶
MinFractionDigits specifies the minimum number of fractional digits.
func MinIntegerDigits ¶
MinIntegerDigits specifies the minimum number of integer digits, adding leading zeros when needed.
func NoSeparator ¶
func NoSeparator() Option
NoSeparator causes a number to be displayed without grouping separators.
func PatternOverrides ¶
PatternOverrides allows users to specify alternative patterns for specific languages. The Pattern will be overridden for all languages in a subgroup as well. The function will panic for invalid input. It is best to create this option at startup time. PatternOverrides must be the first Option passed to a formatter.
func Precision ¶
Precision sets the maximum number of significant digits. A negative value means exact.