如何在Rust的format!宏中强制正浮点数显示‘+’符号?
解决Rust format!宏右对齐带符号浮点数的编译错误
这个编译错误是因为你格式字符串里的标志顺序不符合Rust的格式化语法规范~
Rust的format!宏对格式说明符的组件顺序有严格要求:符号标志(+)必须放在对齐标志(>)之后、宽度数值之前,而你把+放在了宽度10的后面,这就导致了语法解析错误。
正确的写法
调整格式字符串的顺序,把+移到>和10之间:
let x = format!("{:+>10.1}", 23.3434);
各部分含义拆解
+:强制显示正负号(正数会显示+,负数显示-)>:设置内容右对齐10:指定输出的总宽度为10个字符.1:保留1位小数
运行这段代码后,x的值会是 +23.3(前面有5个空格,加上+23.3刚好10个字符,满足右对齐和带符号的要求)。
版本兼容性说明
这个语法在你使用的Rust 1.25.0版本中是完全有效的,因为格式化语法的这套规则在更早的版本就已经定型了,不需要担心版本兼容问题。
内容的提问来源于stack exchange,提问作者yuiu
相关产品推荐
相关产品推荐

