将String转换为完全相同的Int

时间:2018-09-19 04:52:56

标签: parsing go

我如何将字符串转换为整数而不从开头删除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。

1 个答案:

答案 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

https://golang.org/pkg/fmt/

如果将这两件事结合在一起,那么您将获得代码:

fmt.Printf("i=%04d, type: %T\n", i, i)

https://play.golang.org/p/lR77KoCswv_B