我正在定义这样的浮点数
let width = (longer_lengths[0] + longer_lengths[1]) / 2.0;
宽度是
f64
然后我尝试像这样显示它
let width_text = format!("Width: {}", width);
但是这样我打印了所有的浮点小数点,我想将其限制为 2 位
let width_text = format!("Width: {:.2f}", width);
但是这样做我得到一个错误,格式特征
f
未知
我尝试这样做,但没有帮助
let width_text = format!("Width: {:.2f}", width as f64);
还有其他我忽略的事情吗?谢谢!
您不需要
f
后缀:
let width_text = format!("Width: {:.2}", width as f64);
我假设您有 C/C++ 背景,在尝试使用
%f
系列函数格式化数字时需要使用 printf
。这是必要的,因为 C 函数用于处理可变数量参数的机制不包括任何类型的信息;因此,类型信息必须以另一种方式传达,以便将信息放入模板字符串中。
相比之下,Rust 的
format!
宏不需要知道表达式的类型。 Rust 处理这个问题的方式与 C 完全不同:除了要格式化的实际值之外的所有信息都是在编译时由 format_args!
宏 准备的,它使用格式化特征而不是实际的具体类型。例如,该宏处理 f64
的方式与处理 i64
的方式没有根本不同。