【ツンデレ】TRPG支援ツールを作るスレ6.0【ソフトウェア|スクリプト】at CGAME
【ツンデレ】TRPG支援ツールを作るスレ6.0【ソフトウェア|スクリプト】 - 暇つぶし2ch371:NPCさん
08/10/17 02:10:43
>>365
具体的にはこういうもの。

URLリンク(javafaq.jp)
[S029-Q01]
doubleの演算で1.1 + 2.2が 3.3にならず 3.3000000000000003 になるのはなぜですか?

[S029-A01]
丸め誤差のせいです。

double型が内部的に64ビットの浮動小数点で数値を表現している
ために「丸め」が発生しているためです。
内部の計算を2進数で行っている以上「丸め」は避ける事が
できないので、必要に応じて内部の計算を10進数で行う
java.math.BigDecimalを使いましょう。


[S029-Q02]
double, floatの計算で0になるはずのものが0にならないのはなぜですか?

[S029-A02]
丸め誤差のせいです。

通常の数値計算ルーチンは数値はすべて2進数扱いしますが、
2進数では10進数の小数を表現しきれないためにこういう現象がおこります。
2進数の桁は2の累乗扱いになるわけですが、
小数だと、2の-1乗(つまり1/2)、2の-2乗(1/4)という単位になります。
したがって、2のマイナス何乗かの数値の合成でうまく表現できない
数値は無限小数になって、最後の桁を切り捨てした部分の
誤差ができてしまいます。
対処方法としては、内部の計算を10進数で行う
java.math.BigDecimalを使いましょう。


次ページ
続きを表示
1を表示
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch