gpt4 book ai didi

c# - .NET 中 NaN 数的错误 Math.Pow() 实现

转载 作者:太空狗 更新时间:2023-10-29 20:22:46 27 4
gpt4 key购买 nike

为什么 Math.Pow(1.0, double.NaN) 命令返回 NaN 而不是正确的 1.0?我将 NaN 理解为一个不定值(在数学上),它代表所有实数,包括正无穷大和负无穷大。对于所有这些值,表达式在数学上始终是正确的并且等于 1.0。

例如Python 有它,并且 1**float("nan") == 1True,符合 IEEE标准:

For any value of y (including NaN), if x is +1, 1.0 shall be returned.

最佳答案

任何使用 NaN 的操作都会返回 NaN,因此 Math.Pow(1.0, double.Nan) 将返回 NaN。这是在 C# 中使用 NaN 时的预期行为。

a method call with a NaN value or an operation on a NaN value returns NaN

See Here

仅仅因为一种语言以某种方式表现并不一定意味着另一种语言也会以这种方式表现

编辑:供将来引用 Math.Pow(1.0, double.PositiveInfinity) 确实给了你一个,我认为这就是你要找的。查看有关语言的文档,了解如何使用 NaN。如果您想使用正无穷大和负无穷大,请使用 double.PostiveInfinititydouble.NegativeInfinity,因为 NaN 不代表这些值。

关于c# - .NET 中 NaN 数的错误 Math.Pow() 实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52037361/

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