floatについて
C言語(C99のJIS規格)のお話、多分MUGENも同じ
MUGENは多分C89準拠だと思うけど、ここらへんの話はC99とC89で変わりはないと思う……
浮動小数点演算の正確度は不明、つまり計算結果が盛大にずれても問題ない
浮動小数点加算の丸め方もわからない
0方向とか、最も近い値とかの選択肢から選べるんだけど、そのうちの一つに不確定があるので……
ランダムで切り捨てたり四捨五入したりしても問題ないってことで良いんだよね?
ついでに、floatの演算してるからって、計算結果がfloatとは限らない
最終的にfloatにキャストされてるだけで、それまではdoubleとかlong doubleで計算されてるかもしれない
さらに計算順序とかも気を付けないと、桁落ち、情報落ちとかあるわけで……
つまり、浮動小数点数の演算結果は信用に値しない
有効桁数(floatなら6~7桁)以内なら問題ないってわけでもない
正確に計算したい桁数分は、ちゃんと10で乗じて整数で計算しましょう!
MUGENは多分C89準拠だと思うけど、ここらへんの話はC99とC89で変わりはないと思う……
浮動小数点演算の正確度は不明、つまり計算結果が盛大にずれても問題ない
浮動小数点加算の丸め方もわからない
0方向とか、最も近い値とかの選択肢から選べるんだけど、そのうちの一つに不確定があるので……
ランダムで切り捨てたり四捨五入したりしても問題ないってことで良いんだよね?
ついでに、floatの演算してるからって、計算結果がfloatとは限らない
最終的にfloatにキャストされてるだけで、それまではdoubleとかlong doubleで計算されてるかもしれない
さらに計算順序とかも気を付けないと、桁落ち、情報落ちとかあるわけで……
つまり、浮動小数点数の演算結果は信用に値しない
有効桁数(floatなら6~7桁)以内なら問題ないってわけでもない
正確に計算したい桁数分は、ちゃんと10で乗じて整数で計算しましょう!