【问题标题】:Floating point inconsistency in mono单声道中的浮点不一致
【发布时间】:2012-11-14 19:26:24
【问题描述】:

我在 .NET 即时窗口中尝试过这个:

30f + 0.5f

并按预期获得 30.5。在单声道中,我得到 30。是什么原因?

详情:

  • .NET:Visual Studio 2010 SP1
  • 单声道:Unity3D 3.5.6f4 配备 MonoDevelop 2.8.2

【问题讨论】:

  • +1 而 29f + 1.5f 是 31 ;-)
  • 你能发布一些代码来显示这个吗? Unity 中的 Mono 对我来说非常适合这些添加。您是否将结果存储为整数?

标签: .net unity3d mono monodevelop


【解决方案1】:

将您的 MonoDevelop 升级到 3.0.5

【讨论】:

  • 不幸的是,我坚持使用 Unity3D 附带的版本。 Unity3D 的下一个版本可能会附带 Mono 的更新版本,但同时我需要使用解决方法来解决这个错误......
  • 没有变通方法...发生的情况是评估器将所有原始类型(字符串除外)转换为 long 以加/减/乘/除/等,然后再转换回实际类型。很明显,写原始代码的人忽略了双精度和浮点数,所以我在 3.0 中添加了对它们的支持
猜你喜欢
  • 2011-09-05
  • 1970-01-01
  • 2014-01-24
  • 1970-01-01
  • 2022-10-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多