0

所以,我用 XNA 做了一个简单的流体动力学模拟,我得到了非常准确的波状行为。但是当波变得越来越小,并且在某个点达到 -4.0E-43 或更小的幅度时,应用程序开始严重滞后。c# 是否切换到一些愚蠢的舍入算法或其他东西?我没有观察到任何 NaN,也没有任何异常。哦,模拟循环在单独的线程中运行。

4

1 回答 1

0

C# 不是这里的罪魁祸首。非正规数是。

这些数字的大小在 0 到 2 -126 (1.175494351e-38) 之间,不以标准(或“正常”)浮点格式存储。实际上,它们实际上存储为乘数为 2 -149的定点数。

因为它们很少见并且需要不同的算法,所以涉及非正规数的操作不会优化到与正常操作相同的程度,如果有的话。

于 2013-10-29T03:05:28.737 回答