Golang中如何处理包含NaN值的求和计算

Golang中如何处理包含NaN值的求和计算 你好,

如果其中一个值是 NaN,有没有办法计算总和? 示例: 总和 = a + b + c,其中 c 是 NaN。

能否以某种方式忽略它? 谢谢。

2 回复

Go 不允许对任何值为 NaN 的变量进行操作,结果始终会是 NaN。你必须检查每个值是否为 NaN

要检查 NaN,你可以使用这个函数: https://golang.org/pkg/math/#IsNaN

如果它是 NaN,则在操作中忽略它或将其设为 0。

更多关于Golang中如何处理包含NaN值的求和计算的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


在Go语言中,处理包含NaN值的求和计算时,可以通过检查每个值是否为NaN,并在计算前将其排除。以下是一个示例代码:

package main

import (
    "fmt"
    "math"
)

func sumIgnoreNaN(values ...float64) float64 {
    total := 0.0
    for _, v := range values {
        if !math.IsNaN(v) {
            total += v
        }
    }
    return total
}

func main() {
    a := 10.5
    b := 20.3
    c := math.NaN()
    
    result := sumIgnoreNaN(a, b, c)
    fmt.Printf("总和(忽略NaN): %.2f\n", result)
    
    // 另一个示例
    values := []float64{1.1, 2.2, math.NaN(), 3.3, math.NaN(), 4.4}
    result2 := sumIgnoreNaN(values...)
    fmt.Printf("数组总和(忽略NaN): %.2f\n", result2)
}

这段代码定义了一个sumIgnoreNaN函数,它会遍历所有传入的浮点数,仅对非NaN值进行累加。使用math.IsNaN()函数可以检测一个值是否为NaN。

回到顶部