3
A
回答
4
有没有内置的方式来发现这一点。核心问题是CLI规范没有指定float或double的编码方式。它允许CLR实现使用比预定义的'float32'和'float64'类型更精确的本机浮点类型。
这已经足够真实了,Intel/AMD处理器实际上存储的浮点数值是,更精确的是。他们的内部格式是80位。这个设计决策是一个无法解决的灾难,它会导致计算结果随机更改,具体取决于代码是否在Release或Debug版本中运行,当计算失去大量有效数字时,代码的非常小的更改可能会导致截然不同的结果。协处理器刚刚被重新设计,以解决这个问题,但我们仍然坚持32位代码中的旧问题。微软无法修复x86抖动,转向新的协处理器设计会打破太多现有的程序。
出于所有实际目的,您可以将精度硬编码为7位和15位。遵循IEEE-754标准,它规定了单精度浮点值和双精度浮点值的编码。这将持续到下一个50年。不实用的是在没有硬件支持的情况下在处理器上运行的.NET Micro Framework应用程序。
请保持其他原因记住为什么精度不暴露,它承诺完全太多。当你计算,比如0.1234567f - 0.1234568f,那么你只有一个有效数字左边。在大多数情况下生成垃圾结果。
+0
谢谢你有见地的答案! – NoxArt 2014-09-26 14:30:20
相关问题
- 1. 如何获得的BigDecimal类型数据的精度在@Entity类
- 2. 如何获得h2o模型的准确性/精度?
- 3. 如何获得类类型
- 4. 如何在范围0 -1中获得双精度的最佳精度?
- 5. 如何获得泛型类
- 6. 如何获得泛型类的类?
- 7. 如何获得指定精确度的一次性位置?
- 8. 如何以毫秒的精度获得nsdate?
- 9. 如何以纳秒精度获得PHP的时间?
- 10. 如何获得C中双精度的二进制数?
- 11. 如何获得元素的精确浮点宽度?
- 12. 如何获得更精细的粒度序列:1,16,8,4,12,...?
- 13. 如何获得泛型类型的实际类型?
- 14. 如何获得泛型类型的类型参数?
- 15. NSManagedObject - 如何获得属性的类型
- 16. 如何获得当前的HDD类型?
- 17. 如何获得Scheme中的值类型?
- 18. 更高精度的选择类型
- 19. 如何获得精确的ping测量
- 20. 如何获得ID的精确值
- 21. 如何从UIPrintFormatter获得精确的pageCount
- 22. 如何获得精确的划分?
- 23. 在GCC中实现的精确宽度整数类型如何?
- 24. 如何识别long double数据类型的精度
- 25. 如何在ANDROID中插入双精度类型的空值
- 26. 如何转换在c中的sql类型双精度#
- 27. 如何获得小数n位精度在C#程序丕
- 28. 如何在php中获得双精度值
- 29. 如何获得提高多精度数字部分?
- 30. 如何以秒精度获得GPS位置?
据我所知,没有 – 2014-09-26 10:05:29
为什么你需要这样做? – 2014-09-26 10:07:40
鉴于这种类型的适用数量很少,为什么不对它进行硬编码呢? (当然,在一个地方。) – 2014-09-26 10:08:10