aboutsummaryrefslogtreecommitdiff
path: root/src/Format.purs
diff options
context:
space:
mode:
Diffstat (limited to 'src/Format.purs')
-rw-r--r--src/Format.purs29
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
+ ""