gpt4 book ai didi

c# - double.PositiveInfinity 和 i 的乘积

转载 作者:行者123 更新时间:2023-11-30 21:54:59 24 4
gpt4 key购买 nike

我在 C# 中遇到了以下非常奇怪的产品。下面的测试通过。

public void InfinityTimesITest() {
Complex infinity = new Complex(double.PositiveInfinity, 0);
Complex i = new Complex(0, 1);
Complex product = infinity * i;
double real = product.Real;
double imaginary = product.Imaginary;
Assert.IsNaN(real);
Assert.IsTrue(Double.IsPositiveInfinity(imaginary));
}

如果您颠倒产品中术语的顺序,它也会通过。但是从数学上考虑这个问题,C# 似乎在说:

 infinity * i = (real NaN) + infinity * i.

这似乎是一个奇怪的选择。这背后一定有一些思考。我希望这里有人可以提供一些关于正在发生的事情的见解。

最佳答案

这不是乘以虚数 i,而是乘以复数 0+i。有一个概念上的区别:对于后者,实部可能真的为零或太小而无法表示。乘法基本上使结果的实部为零乘以无穷大,这应该是 NaN。

关于c# - double.PositiveInfinity 和 i 的乘积,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32688664/

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