% 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