VB Math命令に注意 Math.Floor Math.Round Math.Ceiling

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)の両方記載されている
仕様なら訂正して下さい