我试图将十进制转换为十六进制作为字符串.我已经到处寻找解决方案了,但我能找到的只有Int或者长到十六进制.使用下面的代码时,我收到"格式说明符无效"错误.
Decimal decValue = 18446744073709551615
string hexValue = decValue.ToString("X");
Run Code Online (Sandbox Code Playgroud)
我还研究过将十进制转换为字节数组,然后转换为十六进制,但我也很简单.
既然你使用的是.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)
当然,这会忽略任何非整数的部分.