我如何将字符串转换为整数而不从开头删除0位数前缀。像这样的用例,我有一个字符串,如“ 0093”,我想将其与0093转换为整数。我尝试使用strconv,但问题是此程序包在转换后从0093中删除了00前缀。谁能为这个问题找到更好的解决方案。
s := "0093"
if i, err := strconv.Atoi(s); err == nil {
fmt.Printf("i=%d, type: %T\n", i, i)
}
输出为93,但我想要int类型的精确0093。
答案 0 :(得分:2)
来自fmt
软件包的文档:
Width is specified by an optional decimal number immediately preceding the verb. If absent, the width is whatever is necessary to represent the value.
...
Other flags:
0 pad with leading zeros rather than spaces;
for numbers, this moves the padding after the sign
如果将这两件事结合在一起,那么您将获得代码:
fmt.Printf("i=%04d, type: %T\n", i, i)