面试题答案
一键面试fn calculate_average(f32_num: f32, f64_num: f64) -> f64 {
let f64_f32_num = f32_num as f64;
(f64_f32_num + f64_num) / 2.0
}
- 设计思路:
- 函数
calculate_average
接受一个f32
类型和一个f64
类型的参数。 - 为了确保不会丢失精度,将
f32
类型的参数转换为f64
类型。因为f64
具有更高的精度,可以容纳f32
的所有值而不丢失精度。 - 执行数学运算(这里是求平均值),由于两个操作数现在都是
f64
类型,运算结果也是f64
类型,最后返回f64
类型的结果。
- 函数
- 选择类型转换方式的原因:
- 使用
as
关键字将f32
转换为f64
。这种转换方式简单直接,并且在这种情况下是安全的,因为f64
的表示范围和精度都大于f32
,所以不会丢失任何信息。如果反过来将f64
转换为f32
,则可能会丢失精度,导致结果不准确。
- 使用