四捨五入と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 対象
- import java.math.BigDecimal;
- import java.math.RoundingMode;
- 使用クラス
- BigDecimal
- 数値をString化し
- その値でコンストラクトしたBigDecimalに対して、setScale関数を働かせる。setScale関数は、小数点以下x桁の桁数と、四捨五入・切捨て・切上げなどの、方法の2情報を引数としてとる。
- BigDecimal
String stnumber = "" + number;
BigDecimal bd = new BigDecimal(stnumber);
double rounded = bd.setScale(5, RoundingMode.HALF_UP).doubleValue();