四捨五入とNaNの扱い メモ



相関係数・偏相関係数の計算ソースを書くと、それ以外の数値の扱いとも同様だが、分母がゼロになって割り算が不能だったり、切りのよい結果(1や0など)が返るべきところで、0.9999999999999999 などが出て困る。

  • NaN
    • サイト
    • "Not a Number"の略
    • NaNか否かの判断をして処理をするためには、is NaN 関数を用いる


double answer = functionx(args[]);
//answer に NaN が返るとする
if(Double.isNaN( answer )){ ....
//NaNが返っていれば、if条件にtrueが返る

  • 四捨五入
    • サイト
    • import 対象
    • 使用クラス
      • BigDecimal
        • 数値をString化し
        • その値でコンストラクトしたBigDecimalに対して、setScale関数を働かせる。setScale関数は、小数点以下x桁の桁数と、四捨五入・切捨て・切上げなどの、方法の2情報を引数としてとる。

String stnumber = "" + number;
BigDecimal bd = new BigDecimal(stnumber);
double rounded = bd.setScale(5, RoundingMode.HALF_UP).doubleValue();