Elm Format Number
This simple Elm package formats Float
numbers as pretty strings.
Format
The format
function formats Float
numbers using a locale with settings:
import FormatNumber exposing (format)
import FormatNumber.Locales exposing (spanishLocale, usLocale)
format usLocale (pi * 1000) --> "3,141.59"
format spanishLocale (pi * 1000) --> "3.141,593"
It is flexible enough to deal with different number of decimals, different thousand separators, different decimal separator, and different ways to represent negative numbers — all that is possible using Locale
s. The base
locale matches Elm's native String.fromFloat
using unicode minus (U+2212
) instead of an hyphen/dash.
import FormatNumber exposing (format)
import FormatNumber.Locales exposing (Decimals(..), Locale, usLocale)
sharesLocale : Locale
sharesLocale =
{ usLocale
| decimals = Exact 3
, negativePrefix = "("
, negativeSuffix = ")"
}
format usLocale -pi --> "−3.14"
format sharesLocale -pi --> "(3.142)"
Decimals
strategy type
The Decimals
type contains different strategies for handling the number of decimals when formatting the number.
Min Int
shows at least a certain amount of decimal digits, adding trailing zeros if needed.Max Int
shows up to a certain amount of decimal digits, discarding trailing zeros if needed.Exact Int
shows an exact number of decimal digits, adding trailing zeros if needed.
Docs
The API is further documented in package.elm-lang.org.
Tests
This package uses elm-verify-examples, all the examples in the documentation are automatically tested:
$ npm install
$ npm test