Конвертировать строку в точно такой же Int - PullRequest
0 голосов
/ 19 сентября 2018

Как я могу преобразовать строку в целое число, не удаляя префикс 0 цифр из начала.В этом случае используется строка типа «0093», и я хочу преобразовать в целое число 0093.Я пробую strconv, но проблема в том, что этот пакет удаляет префикс 00 из 0093 после преобразования.может у любого есть лучшее решение для этой проблемы.

s := "0093"
  if i, err := strconv.Atoi(s); err == nil {
  fmt.Printf("i=%d, type: %T\n", i, i)
}

вывод равен 93, но я хочу точное 0093 в типе int.

1 Ответ

0 голосов
/ 19 сентября 2018

Из документов для пакета 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

...