.NET Decimal, IEEE Decimal….關於那個和未來的任何討論等?
請注意,我不是在尋找基於意見或第三方庫的東西——我只是想確認沒有任何計劃(或指向一些討論的指針)。我嘗試了Google並沒有找到任何東西,所以看起來我正在走向“使用英特爾庫在 C++/CLI 中編寫我自己的實現”)。
像許多人一樣,我正在處理財務數字,這意味著浮動是非常有問題的。同時,.NET 十進制是一頭野獸——速度慢但也很大(128 位大),當您將數十萬個十進制數聚集在一起並希望它們包含更多資訊的結構時,使用起來效率很低。
IEEE 754 為 32、64 和 128 位定義了 3 種十進制類型,它們可能會在主流處理器的硬體中得到支持(它們已經在不太常見的處理器中支持,例如 Power 系列)。有一個優化的英特爾庫可以進行十進制數學運算,很可能在某一時刻,至少更簡單的數學運算將在硬體中實現。
我所能找到的只是 Annotated C# Standard 中關於 .NET 十進制和 IEEE 然後提出的標準之間的互操作的古老討論,並且它被拒絕但以一種可以辨識位域是 .NET 十進制還是位反轉 IEEE 十進制 128。
從那時起,許多年過去了。現在 IEEE 754 : 2008 已經完成,我想知道是否有任何官方發布了關於如何進行的內容。正如我所說,.NET 十進制很慢,獲得硬體加速的機會為零——而且 i 非常大。
那麼,有人知道部落格中的任何東西嗎?注意 - 它必須是官方的或參考的,我在這裡不是為了來自與 .NET 語言或 BCL 團隊無關的人的意見。這是關於未來是否考慮其他數據類型的規範資源……可能適用於 .NET 5.0 / 6.0 時間範圍。
我已經編寫了財務軟體,並且完全理解為什麼簡單的整數是不夠的。
證明否定是非常困難的,但這裡有:
<http://social.msdn.microsoft.com/forums/vstudio/en-US/48c698db-d602-4f83-92bb-1c0506d58a78/ieee754> 簡而言之,如果語言不需要它,.NET 不在乎。
尋找需要它的語言:Dietmar Kühl 似乎打算嘗試將小數添加到 c 但未能及時送出: C++ 十進制數據類型
儘管如此,IEEE 仍然在小數方面做了大量工作。試試這些Google搜尋:
十進製網站:ieee.org 並將其限制為上個月。 十進制草稿站點:ieee.org 並將其限制在去年。如果它在硬體中,軟體最終將擁有它。組裝可以讓你做任何硬體可以做的事情,但如果你被困在一個不知道新操作碼的虛擬機中,我不確定你能做任何事情,只能模擬。
所以現在我沒有看到比你更多的東西。對不起。
哦,你可以告訴我 supercat, (a+b)+c = a+(b+c) 不再保證整數而不是浮點數。位也可以從非無限大小的整數的左端脫落。‘a’ 可能是負數,如果您先添加它,則可以使您免於溢出。