if else条件与数学/大

时间:2014-04-14 16:13:36

标签: if-statement go

我正在尝试对大数字进行比较,但只能获得字符串值。 那么你如何对big.Int做一个条件。下面是我最接近我试过的。

package main

import (
    "fmt"
    "math/big"
)

func main() {

    dirtyVal := "9446744073709551615"
    dv := big.NewInt(0)
    dv.SetString(dirtyVal, 10)
    userVal := dv.String()

    maxVal := "18446744073709551615"
    mv := big.NewInt(0)
    mv.SetString(maxVal, 10)
    // maxValue := mv.String()

    if userVal > maxVal {
        fmt.Println("True")
    } else {
        fmt.Println("False")
    }

}

1 个答案:

答案 0 :(得分:2)

您可以使用func (*Int) Cmp来比较两个big.Int http://golang.org/pkg/math/big/#Int.Cmp

if dv.Cmp(mv)>0 {
    fmt.Println("True")
} else {
    fmt.Println("False")
}