aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/gleam/float.gleam13
-rw-r--r--test/gleam/float_test.gleam17
2 files changed, 30 insertions, 0 deletions
diff --git a/src/gleam/float.gleam b/src/gleam/float.gleam
index f810161..c85903f 100644
--- a/src/gleam/float.gleam
+++ b/src/gleam/float.gleam
@@ -115,3 +115,16 @@ pub external fn round(Float) -> Int =
///
pub external fn truncate(Float) -> Int =
"erlang" "trunc"
+
+/// Returns the absolute value of the input as a float.
+///
+/// ## Examples
+///
+/// > absolute_value(-12.5)
+/// 12.5
+///
+/// > absolute_value(10.2)
+/// 10.2
+///
+pub external fn absolute_value(Float) -> Float =
+ "erlang" "abs"
diff --git a/test/gleam/float_test.gleam b/test/gleam/float_test.gleam
index d8ed02e..5508a76 100644
--- a/test/gleam/float_test.gleam
+++ b/test/gleam/float_test.gleam
@@ -183,3 +183,20 @@ pub fn max_test() {
float.max(-1.1, -1.)
|> should.equal(-1.)
}
+
+pub fn absolute_value_test() {
+ float.absolute_value(-1.0)
+ |> should.equal(1.0)
+
+ float.absolute_value(-20.6)
+ |> should.equal(20.6)
+
+ float.absolute_value(0.0)
+ |> should.equal(0.0)
+
+ float.absolute_value(1.0)
+ |> should.equal(1.0)
+
+ float.absolute_value(25.2)
+ |> should.equal(25.2)
+}