これが何度も議論されていることは知っていますが、ダブルスの1ステップ除算の最も単純な例でさえ、C#で期待される、丸められていない結果をもたらすようには思えないので、おそらくつまり、コンパイラフラグなど、私が考えていない奇妙なものがあります。この例を考えてみましょう。
double v1 = 0.7;
double v2 = 0.025;
double result = v1 / v2;
最後の行を中断してVSデバッガーで調べると、「result」の値は27.999999999999996です。「10進数」に変更することで解決できることは承知していますが、周辺のプログラムでは解決できません。このような2つの低精度のdoubleが正しい値の28に分割できないのは不思議ではありませんか?本当にMath.Roundの結果に対する唯一の解決策はありますか?