在.NET 3.5中将类型十进制转换为十六进制(字符串)

Jac*_*att 2 c#

我试图将十进制转换为十六进制作为字符串.我已经到处寻找解决方案了,但我能找到的只有Int或者长到十六进制.使用下面的代码时,我收到"格式说明符无效"错误.

    Decimal decValue = 18446744073709551615
    string hexValue = decValue.ToString("X");
Run Code Online (Sandbox Code Playgroud)

我还研究过将十进制转换为字节数组,然后转换为十六进制,但我也很简单.

yam*_*men 6

既然你使用的是.NET 3.5,那么适用于.NET 2.0+的IntX怎么样呢?

var intx = new Oyster.Math.IntX(decValue.ToString());
intx.ToString(16);
Run Code Online (Sandbox Code Playgroud)

对于.NET 4.0+使用System.Numerics(记得包括System.Numerics.dll)

Decimal decValue = 18446744073709551615;
var bigValue = new BigInteger(decValue);
bigValue.ToString("X");
Run Code Online (Sandbox Code Playgroud)

当然,这会忽略任何非整数的部分.