我的问题不是关于浮点计算的优点,而是关于计算方式的差异。鉴于此:
float a = 1f / 12;
int b = (int)(1f / a);
在运行时,b 将是 12。但是如果我在 QuickWatch 或 LINQPad 之类的东西中评估它的表达式,它是 11。事实上,我无法在运行时使用 float
、{ 重新创建 11 的结果{1}} 或 double
;截断或 decimal
。
表达式的动态求值和运行时求值的区别是什么?
编辑:
因为我看到有人评论说人们得到的结果与我的不同,所以这是我所看到的。
运行时的结果:
VS QuickWatch 评估的结果:
LINQPad 中的结果:
我的 VS 和框架版本: