戈朗 使用数学的正确方法是什么.max在两个 uint 值上



这就是我所做的,它非常丑陋。

math.Max用于 2 uint 的正确方法是什么?

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
}

虽然这个问题很老,但也许这个包会节省某人的时间和精力。它可以像往常一样通过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

最新更新