Rust Basics

Rust Data Types: Integers, Floats, bool and char

Pick the right type for each value and convert between numbers with as.

  • Beginner
  • 2 min read
  • 1 runnable example
What you'll learn
  • u8, i32, i64 and f64
  • bool and char
  • Converting with as
Value → type
30u8, a small whole number
-4.5f64, a decimal number
truebool
'A'char

Every value has a type known at compile time

Rust is statically typed: every value has a type that the compiler knows. Integers come in sizes such as u8 and i64, f64 holds decimal numbers, bool is true or false, and char is one Unicode character.

Rust never converts numbers silently, so age as f64 is needed before adding a float. Underscores in 1_000_000 only make the number easier to read. u8::MAX is the largest value a u8 can hold.

Key points

  1. Integer types say their size: u8 holds 0 to 255.
  2. Rust never converts numbers silently: write age as f64.
  3. char is one Unicode character, written in single quotes.

Runnable Rust example

Rust
Run code →
main.rs
fn main() {
    let age: u8 = 30;
    let temperature: f64 = -4.5;
    let is_ready: bool = true;
    let grade: char = 'A';
    let big = 1_000_000i64;

    let total = age as f64 + temperature;
    println!("{age} {temperature} {is_ready} {grade} {big}");
    println!("total = {total}");
    println!("u8 max = {}", u8::MAX);
}
Get a Run button for this example Result of running the code
30 -4.5 true A 1000000
total = 25.5
u8 max = 255

Practice

Open the example in the online compiler, change a value or add a line, and predict the output before you run it. Then break the code on purpose and read the compiler's message.

Finished this lesson?

Mark it as learned to track your progress.

Practice with a challenge

Use what this lesson covers to solve a real problem. Each challenge runs in your browser with instant tests and an AI review.

All challenges