c# - 运行时浮点计算与评估计算
问题描述
我的问题不是关于浮点计算的细节,而是关于它的评估方式的差异。鉴于这种:
float a = 1f / 12;
int b = (int)(1f / a);
在运行时,b 将为 12。但如果我在 QuickWatch 或 LINQPad 之类的东西中评估它的表达式,它是 11。事实上,我无法在运行时使用 、 或 ; 重新创建 11float
的double
结果decimal
。截断或Math.Floor
。
表达式的动态评估和运行时评估之间的区别是什么?
编辑:
由于我看到有关人们得到与我不同的结果的评论,这就是我所看到的。
运行时的结果:
VS QuickWatch 评估的结果:
LINQPad 中的结果:
我的 VS 和框架版本:
解决方案
推荐阅读
- spring-webflux - 反应堆句柄运算符返回对象?
- javascript - Intellij WebStorm 在封装的 React 组件上显示无用的使用搜索(使用 HOC)
- python - 获取嵌套网址时如何在异步中链接协程
- android - 在 Android Studio 中运行 Higher 和 Lower 游戏后应用程序崩溃
- javascript - 为什么 Puppeteer 工作的 headless 需要是 false 的?
- c++ - 为什么 tag_invoke 模式根本需要 Niebloid std::tag_invoke?
- linux - 在远程机器上以 root 身份在本地文件中无密码执行本地脚本
- java - Spring JUnit Test 加载 src/test/resources 之外文件的属性
- apache-spark - PySpark - 取 1 和 0 序列的第一个值
- google-cloud-firestore - 对 nosql 数据库进行建模以实现最大性能