En Rust hay dos categorías distintas de números: los números enteros (que pueden ser con signo o sin signo) y los números de coma flotante.
El nombre de un tipo numérico consta de dos partes:
Las siguientes combinaciones son posibles:
u8, i8
u16, i16
u32, i32, f32
u64, i64, f64
u128, i128
Ten en cuenta que solo hay variantes de 32 y 64 bits para los números de coma flotante.
Rust no realiza ninguna conversión implícita de tipos.
Esto significa que, si necesitas convertir un tipo numérico en otro, tienes que hacerlo de forma explícita.
Al convertir de un tipo más grande a uno más pequeño (por ejemplo, de u64 a u32), podrías perder datos.
Convertir un número de coma flotante en un número entero sí que perderá todo lo que haya detrás del separador decimal, lo que equivale a redondear hacia abajo.
En este ejercicio vas a escribir código para analizar la producción de una cadena de montaje en una fábrica de coches. La velocidad de la cadena de montaje puede ir de 0 (apagada) a 10 (máxima).
A su velocidad más baja (1), se producen 221 coches cada hora. La producción aumenta linealmente con la velocidad. Así que con la velocidad ajustada a 4, debería producir 4 * 221 = 884 coches por hora. Sin embargo, las velocidades más altas aumentan la probabilidad de que se produzcan coches defectuosos, que luego hay que desechar. La siguiente tabla muestra cómo influye la velocidad en la tasa de éxito:
1 a 4: tasa de éxito del 100 %.5 a 8: tasa de éxito del 90 %.9 y 10: tasa de éxito del 77 %.Tienes dos tareas.
Implementa un método para calcular la tasa de producción por hora de la cadena de montaje, teniendo en cuenta su tasa de éxito:
assembly_line::production_rate_per_hour(6)
// Returns: 1193.4
Ten en cuenta que el valor devuelto es un f64.
Implementa un método para calcular cuántos coches en buen estado se producen por minuto:
assembly_line::working_items_per_minute(6)
// Returns: 19
Ten en cuenta que el valor devuelto es un u32.
Regístrate en Exercism para aprender y dominar Rust con 99 ejercicios y mentoría humana real, todo gratis.