2011-11-16 40 views
2

我一直在尋找的十進制類型在不久的將來一些可能的編程樂趣,並想用它比一個Int64更大的整數最大整數。其中一個關鍵點是我需要找出可以安全存儲到小數點的最大整數(而不會損失精度);我這樣說,因爲它顯然使用了一些浮點,作爲程序員,我們都知道只有浮點可以給我們的愛。C#:十進制 - >可存儲準確

那麼,有沒有人知道我可以在那裏推動最大的int?

而且在另一個筆記上,有沒有人有任何使用long/int數組的經驗?這是繼這個之後的項目。

感謝, -R

+3

喜歡['Decimal.MaxValue'](http://msdn.microsoft.com/en-us/library/system.decimal.maxvalue.aspx)? – user7116

+0

無法確定你想要問什麼。到目前爲止你有什麼開始?我們可以看到你爲此做了什麼嗎?英語能更好更全面嗎? – Kangkan

+1

@Kangkan:這個問題寫得相當清楚。 – Blender

回答

7

decimal作品不同floatdouble - 它總是有足夠的信息,以儘可能精確到整數存儲,如最大指數爲28,精度爲28-29位。您可能對我的關於.NET上的decimal floating pointbinary floating point的文章感興趣,以更仔細地查看差異。

所以,你可以存儲在範圍[decimal.MinValue, decimal.MaxValue]任意整數,而不會丟失任何精度。

如果您想要的範圍更廣泛,您應該使用BigInteger作爲Fredrik提到的(假設您使用.NET 4,當然......我相信有第三方版本可用於早期版本的.NET) 。

+0

非常好。我之前正在閱讀關於小數數據類型細節的一些信息,並且有些擔心我可能錯過了一些東西。 – user978122

+0

如果你沒有找到BigInteger類(就像我最初那樣),你需要添加對[System.Numerics]的引用(http://msdn.microsoft.com/en-us/library/system.numerics的.aspx) – Arvin

3

如果你想對付大整數,你可能要考慮的BigInteger類型。

從文檔:

代表一個任意大的有符號整數

+0

非常好。這很有趣也是新的(Framework 4.0)。 – user978122