きどたかのブログ

いつか誰かがこのブログからトラブルを解決しますように。

浮動小数点数

java.math.BigDecimalと浮動小数点数の歴史

わりとどうでも良い歴史の時間です。 まずは浮動小数点の規格についてふれておこう。 IEEE754-1985 = 2進浮動小数点数 IEEE854-1987 = 基数に依存しない浮動小数点数の規格(とは言っても・・・) IEEE754-2008 = IEEE754-1985 + IEEE854-1987 = 主に10進浮…

-1の-1乗が1になってるよ

珍現象。 ふむ、バグという名前の地雷を踏んだようだ。 たぶんバグ、きっとバグ。 なんでこんなバグが残ってるんだ。 おいらの自作Java累乗関数でも計算できるのに。 -1の-1乗は1と誤り。 -2の-1乗は-0.5と正しい。 公式から予想するに、の処理が怪しい。 こ…

浮動小数点数を実数と表現することについて

実数という言葉の由来だけでも奥が深い。 C言語(JISX3010)ではこういう定義のようです。 「整数型および実浮動小数点型を総称して実数型と呼ぶ。」 実浮動小数点型って何だ? 「実浮動小数点型は、float,double,及びlong doubleの3種類とする。」 ちなみに浮…

浮動小数点やBigDecimalに関して

意見が噛み合わない。 僕はきっと正しいはずだ。 1d/3dが完璧な値を保持してると寝言を言う人に負けるな自分。 小数点演算において、1÷3は無理数である。 無理数を有限数のbitで表現する術はない。 故に1d/3dは丸まっている。 ちなみに、1dは有理数、3dも有…