diff options
author | Joris | 2017-05-10 10:29:30 +0200 |
---|---|---|
committer | Joris | 2017-05-10 10:29:30 +0200 |
commit | 4399097564c041838140225f30dcda7f92caa88a (patch) | |
tree | 9aa1176ac972cc138a530c3e785146ddaaf01056 /js/src/Number.purs | |
parent | 851b14df862eaeed3a8d783630f5e45ef22c5c7f (diff) |
Add tests for purescript number and parser utilities
Diffstat (limited to 'js/src/Number.purs')
-rw-r--r-- | js/src/Number.purs | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/js/src/Number.purs b/js/src/Number.purs new file mode 100644 index 0000000..0403f19 --- /dev/null +++ b/js/src/Number.purs @@ -0,0 +1,22 @@ +module Number + ( format + , roundAt + ) where + +import Data.Int (round, toNumber, pow) as Int +import Data.String (Pattern(..), Replacement(..)) +import Data.String (replace) as String +import Math (round) as Math +import Prelude + +format :: Number -> String +format number = + if Math.round number == number then + show (Int.round number) + else + String.replace (Pattern ".") (Replacement ",") (show (roundAt 1 number)) + +roundAt :: Int -> Number -> Number +roundAt at n = + let exp = Int.toNumber (Int.pow 10 at) + in Math.round (n * exp) / exp |