猿问

go中的平方负数

我在去平方负数时遇到问题......


(2*(1-0.5)-4)/((4*(4-2))/(2-1))^(1/2) = -1.06066017


但是我得到了NaN


package main

import (

    "fmt"

    "math"

)


func main() {

    fmt.Print(math.Sqrt((2*(1-0.5) - 4) / ((4 * (4 - 2)) / (2 - 1))))

}

或者如果我math.Abs这样使用:


fmt.Print(math.Sqrt(math.Abs((2*(1-0.5) - 4) / ((4 * (4 - 2)) / (2 - 1)))))

我回来了:0.6123724356957那是不正确的,正确的结果是:-1.06066017


有什么办法可以解决这个问题吗?


湖上湖
浏览 73回答 1
1回答

慕尼黑8549860

问题是:(2*(1-0.5)-4)/((4*(4-2))/(2-1))^(1/2)在你的计算器中被评估为(2*(1-0.5)-4)除以,它确实产生了。((4*(4-2))/(2-1))^(1/2)-1.06..但是你给了 Go(2*(1-0.5)-4)/((4*(4-2))/(2-1))一个负数,并告诉它计算它的平方根,这会很复杂。所以尝试:fmt.Print((2*(1-0.5) - 4) / math.Sqrt(((4 * (4 - 2)) / (2 - 1))))
随时随地看视频慕课网APP

相关分类

Go
我要回答