为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Go
繁花不似锦 2022-09-19 15:02:13
在下面的代码中,我无法理解为什么声明没有将b的值转换为int。另外,如果我们无论如何都可以完全省略这条线来获得相同的结果,那么这样做有什么意义呢?a = int(b)package mainimport "fmt"func main() {    a, b := 10, 5.5    a = int(b)    fmt.Println(float64(a) + b)}多谢!去类型转换
查看完整描述

3 回答

?
白衣染霜花

TA贡献1796条经验 获得超10个赞

a, b := 10, 5.5在此行中,将值分配给 具有默认类型,并将值分配给 具有默认类型 。游览这里10aint5.5bfloat64


则此行得到 的整数值,即 并分配给 。如果你不需要 的上一个值,那么这两行可以写成如下,得到相同的结果。a = int(b)b5aa


package main


import (

    "fmt"

)


func main() {

    b := 5.5

    a := int(b)

    fmt.Println(float64(a) + b) //Output: 10.5

}

fmt.Println(float64(a) + b)您不能使用不同类型的操作。这就是为什么您需要转换为并执行该操作的原因。结果 a,如果您将其分配给另一个变量。afloat64float64


查看完整回答
反对 回复 2022-09-19
?
慕侠2389804

TA贡献1719条经验 获得超6个赞

跟:

a=int(b)

a变为 5。所以:

float64(a)+b

变为 10.5,因为和a=5b=5.5


查看完整回答
反对 回复 2022-09-19
?
慕尼黑5688855

TA贡献1848条经验 获得超2个赞

package main


import "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)


查看完整回答
反对 回复 2022-09-19
  • 3 回答
  • 0 关注
  • 66 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信