Allow a comma and a point for money values

This commit is contained in:
Eike Kettner
2020-11-22 15:24:15 +01:00
parent bb19e02c66
commit c5ab663091
2 changed files with 26 additions and 9 deletions

View File

@ -2,6 +2,7 @@ module Data.Money exposing
( Money
, format
, fromString
, normalizeInput
, roundMoney
)
@ -13,8 +14,11 @@ type alias Money =
fromString : String -> Result String Money
fromString str =
let
input =
normalizeInput str
points =
String.indexes "." str
String.indexes "." input
len =
String.length str
@ -22,7 +26,7 @@ fromString str =
case points of
index :: [] ->
if index == (len - 3) then
String.toFloat str
String.toFloat input
|> Maybe.map Ok
|> Maybe.withDefault (Err "Two digits required after the dot.")
@ -41,3 +45,8 @@ format money =
roundMoney : Float -> Float
roundMoney input =
(round (input * 100) |> toFloat) / 100
normalizeInput : String -> String
normalizeInput str =
String.replace "," "." str