aboutsummaryrefslogtreecommitdiff
path: root/src/content/chapter0_basics/lesson05_floats
diff options
context:
space:
mode:
Diffstat (limited to 'src/content/chapter0_basics/lesson05_floats')
-rw-r--r--src/content/chapter0_basics/lesson05_floats/code.gleam24
-rw-r--r--src/content/chapter0_basics/lesson05_floats/text.html19
2 files changed, 43 insertions, 0 deletions
diff --git a/src/content/chapter0_basics/lesson05_floats/code.gleam b/src/content/chapter0_basics/lesson05_floats/code.gleam
new file mode 100644
index 0000000..8c4e89a
--- /dev/null
+++ b/src/content/chapter0_basics/lesson05_floats/code.gleam
@@ -0,0 +1,24 @@
+import gleam/io
+import gleam/float
+
+pub fn main() {
+ // Float arithmetic
+ io.debug(1.0 +. 1.5)
+ io.debug(5.0 -. 1.5)
+ io.debug(5.0 /. 2.5)
+ io.debug(3.0 *. 3.5)
+
+ // Float comparisons
+ io.debug(2.2 >. 1.3)
+ io.debug(2.2 <. 1.3)
+ io.debug(2.2 >=. 1.3)
+ io.debug(2.2 <=. 1.3)
+
+ // Equality works for any type
+ io.debug(1.1 == 1.1)
+ io.debug(2.1 == 1.2)
+
+ // Standard library float functions
+ io.debug(float.max(2.0, 9.5))
+ io.debug(float.ceiling(5.4))
+}
diff --git a/src/content/chapter0_basics/lesson05_floats/text.html b/src/content/chapter0_basics/lesson05_floats/text.html
new file mode 100644
index 0000000..497bb13
--- /dev/null
+++ b/src/content/chapter0_basics/lesson05_floats/text.html
@@ -0,0 +1,19 @@
+<p>
+ Gleam's <code>Float</code> type represents numbers that are not integers.
+</p>
+<p>
+ Unlike many languages Gleam does not have a `NaN` or `Infinity` float value.
+</p>
+<p>
+ Gleam's numerical operators are not overloaded, so there are dedictated
+ operators for working with floats.
+</p>
+<p>
+ Floats are represented as 64 bit floating point numbers on both Erlang and
+ JavaScript runtimes.
+</p>
+<p>
+ The <a href="https://hexdocs.pm/gleam_stdlib/gleam/float.html"><code>gleam/float</code></a>
+ standard library module contains functions for working with floats.
+</p>
+