我尝试以二进制格式显示f32
:
let value: f32 = 0.45;
let my_string = format!("{:b}", value);
我收到以下错误:“特权限制f32: std::fmt::Binary
不满意”。
我认为当我们希望将f32
的二进制表示形式转换为String
时,我们必须自己实现该特征。实际上,Rust不知道如何处理无法用二进制表示的某些f32
值。例如,如何处理0.1
?特征应该返回字符串0.00011
还是0.0001100110011
?这就是std::fmt::Binary
没有f32
定义的原因吗?