-1

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

(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

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

4

1 回答 1

1

问题是:

(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))))
于 2018-10-30T23:12:00.070 回答