Numbers

Donna has Int and Float.

code
let count = 3
let ratio = 0.5

Use Int for whole numbers and Float for decimal values.

code
fn next(value: Int) -> Int:
  value + 1

fn half(value: Float) -> Float:
  value /. 2.0

Underscores can group digits.

code
import donna/float
import donna/io
import donna/string

pub fn main() -> Nil:
  io.println(string.from_int(1_000_000))
  io.println(float.to_string(10_000.01))

Integer literals can be binary, octal, or hex.

code
import donna/io
import donna/string

pub fn main() -> Nil:
  io.println(string.from_int(0b00001111))
  io.println(string.from_int(0o17))
  io.println(string.from_int(0xF))

Those all print the same value: 15.

Floats support scientific notation.

code
import donna/float
import donna/io
import donna/string

pub fn main() -> Nil:
  io.println(float.to_string(7.0e7))
  io.println(float.to_string(3.0e-4))

Convert numbers to strings with the standard library when you need text output.

code
import donna/io
import donna/string

pub fn main() -> Nil:
  let total = 1 + 2 + 3
  io.println(string.from_int(total))