cuducos/elm-format-number

Format numbers as pretty strings


Keywords
elm, format, hacktoberfest, i18n, numbers
License
BSD-3-Clause
Install
elm-package install cuducos/elm-format-number 4.0.2

Documentation

Elm Format Number Build

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 Locales. 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)"

The Decimals strategy type

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