[英]Convert Type Decimal to Hex (string) in .NET 3.5
我試圖將十進制轉換為十六進制作為字符串。 我已經全神貫注地找到了解決方案,但我能找到的只有Int或者長到十六進制。 使用下面的代碼時,我收到“格式說明符無效”錯誤。
Decimal decValue = 18446744073709551615
string hexValue = decValue.ToString("X");
我還研究過將十進制轉換為字節數組,然后轉換為十六進制,但我也很簡單。
既然你使用的是.NET 3.5,那么適用於.NET 2.0+的IntX怎么樣呢?
var intx = new Oyster.Math.IntX(decValue.ToString());
intx.ToString(16);
對於.NET 4.0+,請使用System.Numerics
(記得包含System.Numerics.dll
)
Decimal decValue = 18446744073709551615;
var bigValue = new BigInteger(decValue);
bigValue.ToString("X");
當然,這會忽略任何非整數的部分。
由於您使用的是.NET 3.5,因此您必須手動完成。 你可以在擴展方法中將它整理得很漂亮:
public static class DecimalHelper {
public static string ToHexString( this Decimal dec ) {
var sb = new StringBuilder();
while( dec > 1 ) {
var r = dec % 16;
dec /= 16;
sb.Insert( 0, ((int)r).ToString( "X" ) );
}
return sb.ToString();
}
}
然后就這樣稱呼它:
Decimal dec = 18446744073709551615;
var hex = dec.ToHexString();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.