aboutsummaryrefslogtreecommitdiff
path: root/js/src/Number.purs
diff options
context:
space:
mode:
authorJoris2017-05-10 10:29:30 +0200
committerJoris2017-05-10 10:29:30 +0200
commit4399097564c041838140225f30dcda7f92caa88a (patch)
tree9aa1176ac972cc138a530c3e785146ddaaf01056 /js/src/Number.purs
parent851b14df862eaeed3a8d783630f5e45ef22c5c7f (diff)
Add tests for purescript number and parser utilities
Diffstat (limited to 'js/src/Number.purs')
-rw-r--r--js/src/Number.purs22
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