.NET中的数字不一致

WHe*_*ann 3 c# type-conversion slimdx numerical-stability

我正在用C#构建类似CAD的应用程序.我正在使用SlimDX图形引擎,对于数字运算部分,我构建了最终依赖于System.Math类的自定义库.

现在,问题是SlimDX库使用由float数据类型组成的结构,而Math类包含几个只接受和返回双重对象的方法,例如:Math.Ceiling和Math.Sin.所以我发现自己不断地从浮动到双重来回投射我的数据.

这似乎不对.我不是那么担心演员阵容可能会对演奏造成的影响(也许我应该这么做?),但由于它们可能会出现数值不稳定性,这更加令人恐惧.

所以我只是想知道你通常如何管理这些情况,因为我猜这绝不是一个不常见的场景.

Jon*_*nna 5

不应该有任何数字不一致.

在.NET三浮点数据类型(的float,doubleF类型不能使用C#,但在许多会员内部使用)也将是他们拿出了三次:

  1. 应用程序的数学引擎完成的存储和定义.
  2. 由此引擎完成的计算.
  3. 渲染.

数字1可能主要是用来定义的double.第2号也将在很大程度上定义,double尽管它也可以使用F.数字3将根据single您给出的原因进行定义,但如果各层之间的界限定义明确,则不应对实际计算的内容产生任何影响.