我正在做过去的Java论文来准备我的Java考试。
纸上的问题是给你一些java代码,你需要评估价值&它的类型,或者发现它有任何编译错误或运行时错误。
这是一段代码:
Math.sqrt(-2.0)
我在我的java中尝试它,但它只显示NaN
,并且没有显示错误消息。
那么,我应该写它是运行时错误还是只在值中写入NaN?
答案 0 :(得分:0)
NaN的意思是“不是数字”,你得到它,因为常规浮点数学不支持虚数。它是占位符,意味着“无效值”,但它不是语言级别的错误。
答案 1 :(得分:0)
这不是错误或例外。您可以将其视为结果的值。
答案 2 :(得分:0)
不,你得到的结果根本不是错误。函数返回值NaN表示Not a Number
此函数执行一些基础系统算法并返回值NaN。
为了帮助确保Java程序的可移植性,定义了 这个包中的一些数字函数需要它们 产生与某些已发布算法相同的结果。这些 算法可从众所周知的网络库获得
netlib
作为“可自由分发的数学”包 图书馆,“fdlibm
。这些 然后是用C编程语言编写的算法 被理解为与所有浮点运算一起执行 遵循Java浮点运算的规则。
请参阅此answer了解详情。
关于强>
那么,我应该写它是运行时错误还是只在值中写入NaN?
取决于您或要求。如果您在进一步的计算中使用此值,则应非常小心地处理此情况。 如果NaN可能是一个解决方案,可能会返回零。