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

将界面转换为 float32 in go

将界面转换为 float32 in go

Go
拉莫斯之舞 2022-08-30 14:44:52
使用类型断言不起作用将 interface{} 转换为 float32package mainimport (    "fmt")func main() {    var i interface{}    i = 1.1    num, ok := i.(float32)    fmt.Println(ok)    fmt.Println(num)}https://play.golang.org/p/iEJWLbBCHs8这将打印 false 和 0。如何将 interface{} 转换为 float32?
查看完整描述

2 回答

?
慕运维8079593

TA贡献1876条经验 获得超5个赞

当代码运行时:

i = 1.1

它为变量分配一个值 ;这是 Go 中十进制数文本的默认类型。当您尝试将其转换为 时,它会失败,因为这不是 的基础类型。float64ifloat32i

如果要转换为 ,则需要在其中输入一个值:ifloat32float32

i = float32(1.1)

转换将成功。如果希望能够转换为 或 ,则可以尝试转换为这两种类型,如果转换为成功,则将结果转换为 。float32float64float64float32


查看完整回答
反对 回复 2022-08-30
?
呼啦一阵风

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

要回答您的问题:

如何将 interface{} 转换为 float32?

一点也不。

你所能做的就是在接口{}中存储一个 float32,然后再次键入断言它。代码的问题在于您不存储 float32。


查看完整回答
反对 回复 2022-08-30
  • 2 回答
  • 0 关注
  • 75 浏览
慕课专栏
更多

添加回答

举报

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