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