登录
首页 >  Golang >  Go问答

golang 输出错误,我的 go 代码出了什么问题?

来源:stackoverflow

时间:2024-04-21 10:54:35 306浏览 收藏

有志者,事竟成!如果你在学习Golang,那么本文《golang 输出错误,我的 go 代码出了什么问题?》,就很适合你!文章讲解的知识点主要包括,若是你对本文感兴趣,或者是想搞懂其中某个知识点,就请你继续往下看吧~

问题内容

输出应该是一个有效的数字而不是 0,但我得到 0 作为输出, 我到处找,文档,stackoverflow,gfg,但我没有找到任何东西,请帮助我。 这是我的代码,请帮忙 (输出必须为“体重/(身高*身高)* 10000))

package main
import "fmt"

func calculate(height int, weight int) int{
    var x = height * height
    var y = weight
    var z = y / x
    var n = z * 10000
    return n
}

func main() {
    fmt.Println(calculate(160, 40))
}

正确答案


如果您要求函数必须返回 int,那么我认为最简单的解决方案是这样的

func calculate(height, weight int) int {
   return weight * 10000 / (height * height)
}

利用乘法的交换律,即:

体重/(高度*高度)* 10000

等于(用理想的数学术语)

重量 * 10000 / (高度 * 高度)

当您使用整数时,第二个选项的优势就显现出来了。当你在 go 中除整数时,你会丢失信息,因为你不保留余数。由于我们假设您必须返回一个整数,因此您必须在某些时候由于除法而丢失信息。通过将除法运算移至运算顺序的最后一步,我们可以最大限度地减少此错误的影响。

今天关于《golang 输出错误,我的 go 代码出了什么问题?》的内容介绍就到此结束,如果有什么疑问或者建议,可以在golang学习网公众号下多多回复交流;文中若有不正之处,也希望回复留言以告知!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>