VB6.0用掲示板の過去のログ(No.2)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [管理用]

投稿日: 2005/05/22(Sun) 19:30
投稿者魔界の仮面弁士
Eメール
URL
タイトルRe^8: VBのバグです

> > > > 四捨五入 ではなく丸めだと思うのですが(VB6.0 or .NET )
> > >  丸める方法が、四捨五入で丸めるか、切捨てで丸めるかの違いです。
> > Intは切捨て処理ですが、CIntは四捨五入ではありませんよ。
>  正確には、算術的な四捨五入ではなく、マイクロソフトの言う銀行型丸めというやつです。

あ。四捨五入ではない事は、ご存知だったんですね。(^^;

演算精度の話が出ている時なので、「四捨五入」≠「Banker's Rounding」である点には、
どうしてもツッコミたかったのです。失礼しました。


ところで、IEEE754(2進浮動小数点演算規格)の資料を探していたら、
このような記述を見つけました。
hhttp://www.ma.is.saga-u.ac.jp/minamoto/doc/kyudai.pdf

》6.3 Double rounding(2重丸め)
(中略)
》 Pentium4 では,なぜ,このような結果になるのでしょうか? それは,Pentium4 では,
》 まず拡張倍精度で計算をして,その後,倍精度に丸めているからです.


そういえば、実際に浮動小数演算を行うのは、CPUの仕事でした。
もしかして、OS等のソフトウェア環境だけでなく、CPU等の物理的環境によっても
動作が異なる可能性があるのかな……。

# それにしても、1回目と2回目で演算結果が異なるのは不思議。


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- VBレスキュー(花ちゃん) - - Web Forum -