gpt4 book ai didi

go - 为什么 floats 和 ints = Nan?在去

转载 作者:数据小太阳 更新时间:2023-10-29 03:42:54 28 4
gpt4 key购买 nike

package main

import (
"fmt"
"math"
)

func main() {
// x= +- sqrtB-4ac/2a
cal()
}

func cal() {
b := 3
a := 4
c := 2
b2 := float64(b*b)
ac := float64(4)*float64(a)*float64(c)
q := math.Sqrt(b2-ac)
fmt.Print(q)
}

这将输出 NaN,但为什么。我正在尝试制作二次计算器。我想要的只是输出数字。

最佳答案

因为您要对负数求平方根,这不是有效运算(不仅在 Go 中,在数学中),所以它返回 NaN,这是 Not A Number 的首字母缩写词。

b := 3
a := 4
c := 2
b2 := float64(b*b) // sets b2 == 9
ac := float64(4)*float64(a)*float64(c) // ac == 32
q := math.Sqrt(b2-ac) // Sqrt(9-32) == Sqrt(-23) == NaN
fmt.Print(q)
q = math.Sqrt(math.Abs(b2-ac)) // suggested in comments does Sqrt(23) == ~4.79
// perhaps the outcome you're looking for.

编辑:请不要争论数学位的语义。如果你想讨论负数的平方根,这里不是地方。一般来说,负数是不能开平方的。

关于go - 为什么 floats 和 ints = Nan?在去,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34029609/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com