% Primitive Types
There is a new edition of the book and this is an old link.
> Rust is a _statically typed_ language, which means that it must know the types of all variables at compile time.
> The compiler can usually infer what type we want to use based on the value and how we use it.
> In cases when many types are possible, a _type annotation_ must be added.
```rust
let x = 2.0; // f64
let y: f32 = 3.0; // f32
```
---
Here are the relevant sections in the new and old books:
* **[in the current edition: Ch 3.02 — Data Types][2]**
* [In the first edition: Ch 3.3 — Primitive Types][1]
[1]: https://doc.rust-lang.org/1.30.0/book/first-edition/primitive-types.html
[2]: ch03-02-data-types.html