在java中测试NaN

loc*_*boy 7 java android

我想知道是否有办法在java中测试NaN.下面的代码返回NaN,它应返回"NA".

if (tempAlloc == Double.NaN) {
                tv4.setText("NA");
            } else {
                tv4.setText(customFormat("###.#%",
                        Double.toString(tempAlloc)));
            }
Run Code Online (Sandbox Code Playgroud)

Joa*_*uer 26

美国Double.isNaN(tempAlloc).它返回true,当参数是NaNfalse否则.

这是通过检查参数是否不等于它自己(NaN值的唯一属性)来实现的:

boolean isNaN == tempAlloc != tempAlloc;
Run Code Online (Sandbox Code Playgroud)