У Rust є дві різні категорії чисел: цілі числа (які бувають знаковими або беззнаковими) і числа з плаваючою комою.
Назва числового типу складається з двох частин:
Можливі такі комбінації:
u8, i8
u16, i16
u32, i32, f32
u64, i64, f64
u128, i128
Зауважимо, що для чисел з плаваючою комою існують лише варіанти на 32 і 64 біти.
Rust не виконує жодного неявного перетворення типів.
Це означає, що якщо нам потрібно перетворити один числовий тип на інший, доведеться робити це явно.
Під час перетворення з більшого типу на менший (наприклад, з u64 на u32) ми можемо втратити дані.
Перетворення з числа з плаваючою комою на ціле число обовʼязково втратить усе після десяткового розділювача, фактично округлюючи вниз.
У цій вправі ми будемо писати код, щоб аналізувати виробництво на складальній лінії автомобільного заводу. Швидкість складальної лінії може бути в межах від 0 (вимкнено) до 10 (максимум).
За найнижчої швидкості (1) за годину виготовляється 221 автомобіль. Продуктивність зростає лінійно зі швидкістю. Тож зі швидкістю 4 за годину має виготовлятися 4 * 221 = 884 автомобілі. Однак вищі швидкості підвищують імовірність виготовлення бракованих автомобілів, які потім доводиться відкидати. У наступній таблиці показано, як швидкість впливає на частку успішних виробів:
1 до 4: 100 % успішних виробів.5 до 8: 90 % успішних виробів.9 і 10: 77 % успішних виробів.Перед нами два завдання.
Реалізуйте метод, який обчислює продуктивність складальної лінії за годину з урахуванням частки успішних виробів:
assembly_line::production_rate_per_hour(6)
// Returns: 1193.4
Зверніть увагу, що повернене значення має тип f64.
Реалізуйте метод, який обчислює, скільки придатних автомобілів виготовляється за хвилину:
assembly_line::working_items_per_minute(6)
// Returns: 19
Зверніть увагу, що повернене значення має тип u32.