我试图获取整数长度以请求固定长度的引脚,并试图将整数转换为字符串,但我遇到了这个问题,下面是示例:
package main
import (
"fmt"
"strconv"
)
func main() {
inter := 034567
fmt.Println(strconv.Itoa(inter))
}
输出量
14711
这是golang游戏地代码:https://play.golang.org/p/r87zeRaoZ23
我想知道如何处理它的原因,以及是否有另一种解决方案来处理这种情况。
最佳答案
034567
是整数文字,更具体地说是八进制文字。引用Spec: Integer literals:
整数文字是代表integer constant的数字序列。可选的前缀设置非十进制基数:二进制的0b
或0B
,八进制的表示为 0
,0o
或0O
,十六进制表示为0x
或0X
。单个0
被视为十进制零。在十六进制文字中,字母a
至f
和A
至F
表示值10至15。
八进制034567
=十进制14711
。
您不能使用保留源代码中提供的int
的0
号。如果需要,请使用其他类型,例如string
。
如果删除开头的0
:inter := 34567
,则输出将为34567
。
关于go - Golang-为什么总是ItoA在返回字符串时删除初始0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58995234/