C#比较浮点数和整数

5

我在互联网上看到了一个用于判断Windows Mobile设备是否具有VGA屏幕的代码(该代码位于Form类的方法内):

SizeF currentScreen = this.CurrentAutoScaleDimensions;
bool isVGA = currentScreen.Height == 192;

即使屏幕是VGA,由于浮点数精度问题(高度属性为浮点数),isVGA是否可能被设置为false?


那么我理解你的问题实际上是CurrentAutoScaleDimensions是否可以返回非整数浮点值? - Kirk Woll
1个回答

4
在你提供的例子中,可以准确地表示所有绝对值小于或等于2^24的整数(整数)的(IEEE 754兼容,32位)浮点数。

好答案!你直戳要点。如果我真的很偏执,我会担心是否有保证每个人都遵循这个标准。我猜想,可以合理地假设每个人至少足够接近标准,以便将小的正整数准确表示为浮点数。是这样吗? - still_dreaming_1
1
@INTPnerd:值得验证你选择的编程语言是否符合这个(极其常见)标准。根据3.0规范,C#是符合的:两种浮点类型float和double使用32位单精度和64位双精度IEEE 754格式表示。 - Michael Petrotta

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接