gpt4 book ai didi

math - 如何在 Go 中执行除法

转载 作者:IT老高 更新时间:2023-10-28 12:58:04 26 4
gpt4 key购买 nike

我正在尝试在 Go 中执行一个简单的除法。

fmt.Println(3/10)

这会打印 0 而不是 0.3。这有点奇怪。有人可以分享这背后的原因吗?我想在 Go 中执行不同的算术运算。

谢谢

最佳答案

二元运算 3/10 的操作数是无类型常量。规范says this about binary operations with untyped constants

if the operands of a binary operation are different kinds of untyped constants, the operation and, for non-boolean operations, the result use the kind that appears later in this list: integer, rune, floating-point, complex.

因为 310 是无类型整数常量,所以表达式的值是无类型整数(本例中为 0)。

要获得浮点常数结果,其中一个操作数必须是浮点常数。以下表达式计算为无类型浮点常量 0.3:

3.0 / 10.0
3.0 / 10
3 / 10.0

当除法运算有一个无类型的常量操作数和一个有类型的操作数时,有类型的操作数决定了表达式的类型。确保键入的操作数是 float64 以获得 float64 结果。

下面的表达式convert int 变量到 float64 得到 float64 结果 0.3:

var i3 = 3
var i10 = 10
fmt.Println(float64(i3) / 10)
fmt.Println(3 / float64(i10))

Run a demonstration playground .

关于math - 如何在 Go 中执行除法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32815400/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com