go:整数除以浮点数的问题
fmt.Println(11 / (10.0 * 1))
s := []byte("hello world")
fmt.Println(len(s) / (10.0 * 1))
stdout:
1.1
1
两个的计算结果为什么不一致:都是int/float
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这是因为第一个左侧类型为数值常量,会根据右侧运算值类型float类确定左侧类型,之后再运算,
float/float=float
,所以是1.1,而第二个len
函数返回类型为确定的int,运算会按照左侧类型来执行,右侧被转换为int类型,因此就是int/int=int
值为1自动类型转换参考 https://golang.org/ref/spec#C...