golang 在两个 uint 值上使用 math.max 的正确方法是什么?
golang what is the right way to use math.max on two uint values?
我就是这样做的,丑到不行
对于 2 个 uint s 使用 math.Max
的正确方法是什么?
vs.curView.Viewnum =uint(math.Max(float64(args.Viewnum+1), float64(vs.curView.Viewnum)))
存在 math.Max
的主要原因是为了确保正确处理 IEEE 浮点数的一些特殊情况(正无穷大和负无穷大,NaN
和带符号的零)。
这些问题与简单整数无关,因此您不妨使用明显的实现。类似于:
if args.Viewnum+1 > vs.curView.Viewnum {
vs.curView.Viewnum = args.Viewnum+1
}
虽然问题很老,但也许 this package 会节省一些人的时间和精力。它可以像往常一样通过 go get
获得并通过 URL 导入。
用法:
import (
"fmt"
"<Full URL>/go-imath/ix" // Functions for int type
)
...
fmt.Println(ix.Max(100, 152)) // Output: 152
fmt.Println(ix.Maxs(234, 55, 180)) // Output: 234
fmt.Println(ix.MaxSlice([]int{2, 29, 8, -1})) // Output: 29
我就是这样做的,丑到不行
对于 2 个 uint s 使用 math.Max
的正确方法是什么?
vs.curView.Viewnum =uint(math.Max(float64(args.Viewnum+1), float64(vs.curView.Viewnum)))
存在 math.Max
的主要原因是为了确保正确处理 IEEE 浮点数的一些特殊情况(正无穷大和负无穷大,NaN
和带符号的零)。
这些问题与简单整数无关,因此您不妨使用明显的实现。类似于:
if args.Viewnum+1 > vs.curView.Viewnum {
vs.curView.Viewnum = args.Viewnum+1
}
虽然问题很老,但也许 this package 会节省一些人的时间和精力。它可以像往常一样通过 go get
获得并通过 URL 导入。
用法:
import (
"fmt"
"<Full URL>/go-imath/ix" // Functions for int type
)
...
fmt.Println(ix.Max(100, 152)) // Output: 152
fmt.Println(ix.Maxs(234, 55, 180)) // Output: 234
fmt.Println(ix.MaxSlice([]int{2, 29, 8, -1})) // Output: 29