我知道这个问题已经被反复讨论了,但是我似乎无法得到一个简单的双精度浮点数一步除法的预期结果,所以我想知道是否有编译器标志或其他奇怪的东西我没有考虑。考虑以下示例:
double v1 = 0.7;
double v2 = 0.025;
double result = v1 / v2;
当我在最后一行之后断点并在VS调试器中检查时,“result”的值为27.999999999999996。 我知道我可以通过改用“decimal”来解决它,但在周围的程序中不可能这样做。难道两个低精度的双精度数不能除以正确的值28吗?唯一的解决方案真的是使用Math.Round来四舍五入结果吗?