【发布时间】:2016-07-06 01:48:10
【问题描述】:
这是 VB.NET 中的一个奇怪的计算错误。我已将我的问题简化为以下内容。我会写:
Console.WriteLine(-0.78125 ^ 2.5)
并获取-0.53947966093944366。
但是如果我把它改成Console.WriteLine((-0.78125 + 0) ^ 2.5),我会得到-1.#IND。
或者,如果它尝试:
Dim D as Double = -0.78125
Console.WriteLine(D ^ 2.5)
我也收到了-1.#IND。
如果我在表达式中使用单个文字数字,我只能得到返回结果的计算,但是当我使用任何数据类型的变量时,我会得到 -1.#IND。
我已经阅读了解释“-1.#IND”的其他帖子,但它们表明表达式中的一个数字是NaN,这里不是这种情况。为什么会这样?
【问题讨论】:
-
改用 .NET 代码,使用 Math.Pow()
标签: .net vb.net division operator-precedence