NaN在JAVA中是一种运行时错误吗?

时间:2015-12-09 06:04:06

标签: java

我正在做过去的Java论文来准备我的Java考试。

纸上的问题是给你一些java代码,你需要评估价值&它的类型,或者发现它有任何编译错误或运行时错误。

这是一段代码:

Math.sqrt(-2.0)

我在我的java中尝试它,但它只显示NaN,并且没有显示错误消息。

那么,我应该写它是运行时错误还是只在值中写入NaN?

3 个答案:

答案 0 :(得分:0)

NaN的意思是“不是数字”,你得到它,因为常规浮点数学不支持虚数。它是占位符,意味着“无效值”,但它不是语言级别的错误。

答案 1 :(得分:0)

这不是错误或例外。您可以将其视为结果的值。

答案 2 :(得分:0)

不,你得到的结果根本不是错误。函数返回值NaN表示Not a Number

此函数执行一些基础系统算法并返回值NaN。

  

为了帮助确保Java程序的可移植性,定义了   这个包中的一些数字函数需要它们   产生与某些已发布算法相同的结果。这些   算法可从众所周知的网络库获得   netlib作为“可自由分发的数学”包   图书馆,“fdlibm。这些   然后是用C编程语言编写的算法   被理解为与所有浮点运算一起执行   遵循Java浮点运算的规则。

请参阅此answer了解详情。

关于

那么,我应该写它是运行时错误还是只在值中写入NaN?

取决于您或要求。如果您在进一步的计算中使用此值,则应非常小心地处理此情况。 如果NaN可能是一个解决方案,可能会返回零。