如何在戈朗中计算整数值和 float64 值?

在下面的代码中,我无法理解为什么声明没有将b的值转换为int。另外,如果我们无论如何都可以完全省略这条线来获得相同的结果,那么这样做有什么意义呢?a = int(b)


package main


import "fmt"


func main() {

    a, b := 10, 5.5

    a = int(b)

    fmt.Println(float64(a) + b)

}

多谢!


去类型转换


繁花不似锦
浏览 69回答 3
3回答

白衣染霜花

a, b := 10, 5.5在此行中,将值分配给 具有默认类型,并将值分配给 具有默认类型 。游览这里10aint5.5bfloat64则此行得到 的整数值,即 并分配给 。如果你不需要 的上一个值,那么这两行可以写成如下,得到相同的结果。a = int(b)b5aapackage mainimport (    "fmt")func main() {    b := 5.5    a := int(b)    fmt.Println(float64(a) + b) //Output: 10.5}fmt.Println(float64(a) + b)您不能使用不同类型的操作。这就是为什么您需要转换为并执行该操作的原因。结果 a,如果您将其分配给另一个变量。afloat64float64

慕侠2389804

跟:a=int(b)a变为 5。所以:float64(a)+b变为 10.5,因为和a=5b=5.5

慕尼黑5688855

package mainimport "fmt"func main() {    a, b := 10, 5.5    a = int(b)    fmt.Println(float64(a) + b, a)}输出10.5 5它似乎正在将 b 转换为整数 -> 5 -> a = a+b = 5 + 5.5 = 10.5此处 b 被类型转换为 int,并将该值放在 a 中。如果需要更改 b 的值,则应执行 。b = int(b)
打开App,查看更多内容
随时随地看视频慕课网APP