×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
Math.Floor Math.Round Math.Ceilingそれぞれ切り捨て、四捨五入、切り上げの命令だが
問題点がある。
簡単な例で Math.Floor(不動小数点A * 浮動小数点B)
A=3520 B=17.4
結果は61248のはずだが61247になる
MSに言わせれば2進数演算の結果なのでこれが正解!
MS得意のバグでなく仕様だそうである。
対応は
Math.Floor(cdec(不動小数点A) * cdec(浮動小数点B))
10進数の演算にすればいいようであるが、例によってなんだかなあ
追記:改めてMSの仕様説明を読んでみたが
Math.Floor(10進数)
Math.Floor(dauble)の両方記載されている
仕様なら訂正して下さい
問題点がある。
簡単な例で Math.Floor(不動小数点A * 浮動小数点B)
A=3520 B=17.4
結果は61248のはずだが61247になる
MSに言わせれば2進数演算の結果なのでこれが正解!
MS得意のバグでなく仕様だそうである。
対応は
Math.Floor(cdec(不動小数点A) * cdec(浮動小数点B))
10進数の演算にすればいいようであるが、例によってなんだかなあ
追記:改めてMSの仕様説明を読んでみたが
Math.Floor(10進数)
Math.Floor(dauble)の両方記載されている
仕様なら訂正して下さい
PR