プログラミングの為の数学と算数 vol.2at TECHプログラミングの為の数学と算数 vol.2 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト430:デフォルトの名無しさん 06/03/10 11:58:45 訂正 2ビットの精度が必要な場合→3ビットの精度が必要な場合 精度は悪化するけど2bitの精度が必要な場合に3bit取って 剰余は見ないで最下位ビットだけ見て四捨五入って手はあるけどね。 431:423 06/03/10 14:08:49 色々とありがとうございます。 やはり、符号チェックは必要なのですね・・・ 浮動小数を使いたくないというのは、参考にしているライブラリの処理速度を計測したところ その結果から浮動少数は使っていないと思われるためです。 ちなみに、そのライブラリは Win32API のウィンドウとビューポート間の座標変換処理で 比較対照としているものは LPtoDP() という関数です。 こいつが結構くせもので、整数部を n 、小数部を s としたとき だいたい s >= 0.47 で四捨五入して n + s → n + 1 としているのです。 (負数の場合も -1.53 = -2.0 + 0.47 = -1 [入]、-1.54 = -2.0 + 0.46 = -2 [捨]) 上記のように、四捨五入の仕様は>>424のバージョンBと同じです。 整数演算で 0.47 くらいで四捨五入なんて特殊なことをしているので 何か整数演算独自の四捨五入の方式があるのかと思い質問させていただきました。 個人的にはバージョンBの除数、被除数の符号が異なる場合に 除算を2回行うというのに満足できないので、もう少し紙とペンで色々と考えてみます。 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch