为什么math.Pow10(e int)返回float64而不是int64?

Pic*_*Boy 2 math go

既然参数eint,为什么不回归int64?这有什么特别的原因吗?

icz*_*cza 7

原因2:

首先,参数也可能是负数,在这种情况下,结果是0和之间的分数1,因此float64返回值不仅仅是合理的而是需要的.

fmt.Println(math.Pow10(-1))
Run Code Online (Sandbox Code Playgroud)

输出(在Go Playground上试试):

0.1
Run Code Online (Sandbox Code Playgroud)

其次,几乎*math包的每个函数返回类型的值float64,添加一个不会破坏"一致性"的值.

[*]少数例外包括的功能,如Float32frombits()llogb()其中所述偏差是有道理的.