15
嘿,所有,快速的問題:如何在內存中的二進制代碼的.NET decimal
?.NET十進制的二進制表示形式
我們都知道浮點數是如何存儲和正是如此的原因及其不準確的,但我不能找到除了以下有關的任何信息decimal
:
- 顯然超過浮點精確點號碼
- 注意到的存儲器128位
- 2^96 +符號範圍
- 28(有時29?)的數量總顯著數字
有什麼辦法可以解決這個問題嗎?我的計算機科學家要求答案,經過一個小時的嘗試研究,我找不到它。看起來好像有很多浪費的東西,或者我只是想象着我腦海中的錯誤。任何人都可以對此有所瞭解嗎?謝謝。
+1奇妙的答案,正確的重點和豐富的信息。 – JoshD 2010-09-27 06:15:53
@Jacob:不,那*顯然*不是真的。考慮到你可以從一個整數開始並以0.1結束,那顯然是正確的。如果你只能*轉移到左邊,你可以代表10,100等 - 但不是0.1,0.01等等。將來,請等待一個「ack」,然後再改變答案的含義。請參閱'decimal'的文檔:http://msdn.microsoft.com/en-us/library/1k2e8atx.aspx - 其中縮放因子被稱爲「分割」整數,相當於將其轉換爲對。 – 2013-02-13 06:45:11
我的歉意。對我來說,更直觀地把它看作是將*小數點*移到*左*,但我現在看到你指的是「移位」尾數。 – Jacob 2013-02-13 15:59:32