Numbers
| Integers | |
| Floats | |
| div rem div | |
| To_string and to_integer |
Integers
Integers have no fixed size in Elixir, so huge counts never overflow into strange values. Underscores may separate digit groups for readability and change nothing about the value:
count = 1_000
IO.puts(count + 1) # prints 1001
10 * 1_000_000 # gives 10000000
Floats
Floats carry a decimal point and follow the usual 64 bit format. The slash operator always returns a float, even when the division comes out even:
pi = 3.14
7 / 2 # gives 3.5
4 / 2 # gives 2.0 rather than 2
div rem div
For integer division and remainders, call div and rem instead of using the slash. div drops the fraction while rem keeps the remainder:
div(7, 2) # gives 3
rem(7, 2) # gives 1
div(7, 3) + rem(7, 3) # gives 3
To_string and to_integer
Numbers and strings never mix on their own, so convert values at the boundary. Integer.to_string/1 builds a string while String.to_integer/1 parses one back:
Integer.to_string(42) # gives "42"
String.to_integer("42") # gives 42
A string with extra characters raises an ArgumentError, so parse only clean input.
Next: Strings
Article author: Arthur Isaev