Rust 中有两类不同的数字:整数(可以是有符号或无符号)和浮点数。
数字类型的名称由两部分组成:
u)、有符号整数(i)还是浮点数(f)。以下组合都是可行的:
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。