Golang:结合两个数字

Bac*_*ash 1 integer int32 go int64

我觉得这很愚蠢,但我如何在GO中存档以下内容?

假设我有两个int32,它们都具有值33.
如何将它们组合成一个int32,其值为3333而不是66?

Ain*_*r-G 6

var a, b int32 = 33, 33
a = a*100 + b
fmt.Println(a)
Run Code Online (Sandbox Code Playgroud)

游乐场.

编辑:这是一个根据数字计算填充的版本:

func main() {
    var a, b int32 = 1234, 456
    a = a*padding(b) + b
    fmt.Println(a)
}

func padding(n int32) int32 {
    var p int32 = 1
    for p < n {
        p *= 10
    }
    return p
}
Run Code Online (Sandbox Code Playgroud)

游乐场.

请注意,您还应检查int32是否不会溢出.如果您不想担心溢出,可以改用big.Int.


Mak*_*poc 5

与 Ainar-G 的解决方案相比,我不知道性能如何,但是这个怎么样:

var a, b int32 = 33, 33
result, err := strconv.Atoi(fmt.Sprintf("%d%d", a, b))
if err != nil {
    panic(err)
}        
fmt.Println(int32(result))
Run Code Online (Sandbox Code Playgroud)