A FormatFunc formats a number.
type FormatFunc func(x interface{}, opts ...Option) Formatter
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 struct {
// contains filtered or unexported fields
}
func Decimal(x interface{}, opts ...Option) Formatter
Decimal formats a number as a floating point decimal.
func Engineering(x interface{}, opts ...Option) Formatter
Engineering formats a number using engineering notation, which is like scientific notation, but with the exponent normalized to multiples of 3.
func PerMille(x interface{}, opts ...Option) Formatter
PerMille formats a number as a per mille indication. A value of 1.0 means 1000‰.
func Percent(x interface{}, opts ...Option) Formatter
Percent formats a number as a percentage. A value of 1.0 means 100%.
func Scientific(x interface{}, opts ...Option) Formatter
Scientific formats a number in scientific format.
func (f Formatter) Digits(buf []byte, tag language.Tag, scale int) number.Digits
Digits returns information about which logical digits will be presented to the user. This information is relevant, for instance, to determine plural forms.
func (f Formatter) Format(state format.State, verb rune)
Format implements format.Formatter. It is for internal use only for now.
An Option configures a Formatter.
type Option option
func FormatWidth(n int) Option
FormatWidth sets the total format width.
func IncrementString(decimal string) Option
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
func MaxFractionDigits(max int) Option
MaxFractionDigits specifies the maximum number of fractional digits.
func MaxIntegerDigits(max int) Option
MaxIntegerDigits limits the number of integer digits, eliminating the most significant digits.
▹ Example
func MinFractionDigits(min int) Option
MinFractionDigits specifies the minimum number of fractional digits.
func MinIntegerDigits(min int) Option
MinIntegerDigits specifies the minimum number of integer digits, adding leading zeros when needed.
func NoSeparator() Option
NoSeparator causes a number to be displayed without grouping separators.
func Pad(r rune) Option
Pad sets the rune to be used for filling up to the format width.
func PatternOverrides(patterns map[string]string) Option
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(prec int) Option
Precision sets the maximum number of significant digits. A negative value means exact.
func Scale(decimals int) Option
Scale simultaneously sets MinFractionDigits and MaxFractionDigits to the given value.