diff options
Diffstat (limited to 'src/Format.purs')
-rw-r--r-- | src/Format.purs | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/src/Format.purs b/src/Format.purs new file mode 100644 index 0000000..22593e5 --- /dev/null +++ b/src/Format.purs @@ -0,0 +1,29 @@ +module Format where + +import Data.Int (toNumber, fromNumber) +import Data.Array (replicate) +import Data.Maybe (fromMaybe) +import Data.String (length, joinWith) +import Math (round, trunc, pow) + +import Prelude + +number :: Int -> Number -> String +number decimalLength num = formattedIntegerPart <> formattedDecimalPart + where + formattedIntegerPart = + (if decimalLength > 0 then trunc num else round num) + # fromNumber + # fromMaybe 0 + # show + + formattedDecimalPart = + if decimalLength > 0 then + ((num - trunc num) * pow 10.0 (toNumber decimalLength)) + # round + # fromNumber + # fromMaybe 0 + # show + # \str -> "," <> (joinWith "" $ replicate (decimalLength - length str) "0") <> str + else + "" |