【问题标题】:C# Comparing float to intC# 比较浮点数和整数
【发布时间】:2011-04-19 15:51:44
【问题描述】:

我在 intertubes 上看到了这段代码,用于确定 Windows Mobile 设备是否具有 VGA 屏幕(代码位于 Form 类的方法中):

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

是否有可能因为浮动不精确(Height 属性是一个浮动)而即使屏幕是 VGA 也可以将 isVGA 设置为 false?

【问题讨论】:

  • 所以我认为您的问题实际上是 CurrentAutoScaleDimensions 是否可以返回非整数浮点值?

标签: c# floating-point windows-mobile compact-framework


【解决方案1】:

不在您提供的示例中,因为(符合 IEEE 754,32 位)浮点数 can accurately represent all integers (whole numbers) whose absolute value is less than or equal to 2^24

【讨论】:

  • 不错的答案!你直奔主题。如果我真的很偏执,我会担心是否可以保证每个人都会遵循这个标准。我猜有理由假设每个人至少会足够接近标准以准确地将小的正整数表示为浮点数。对吗?
  • @INTPnerd:验证您选择的编程语言是否符合这个(非常常见的)标准是值得的。根据 3.0 规范,C# 确实:使用 32 位单精度和 64 位双精度 IEEE 754 格式表示两种浮点类型,float 和 double。
猜你喜欢
  • 2015-01-20
  • 1970-01-01
  • 2016-05-24
  • 2016-02-08
  • 2017-05-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-13
相关资源
最近更新 更多