简单的int到hex转换不起作用

时间:2013-11-29 10:02:34

标签: c# int hex

我有一个非常简单的代码,我从数字更新中获取一个值,然后我将其转换为十六进制。 (对于numericupdown Hexadecimal属性设置为true)

我从位于winForm中的nud中选择FF。然后在代码中

string str = nudID.Value.ToString("X");

但这不起作用,我得到格式异常

4 个答案:

答案 0 :(得分:4)

NumericUpDown值不是Int类型,它是Decimal。也许这是问题?

答案 1 :(得分:3)

NumericUpDown.Value返回DecimalDecimal.ToString(string)不支持“X”:

  

format参数可以是除D,R和X

之外的任何有效标准数字格式说明符

this solution调整一些代码,如果您使用的是.NET 4.0或更高版本,请尝试此操作:

string str = new System.Numerics.BigInteger(nudID.Value).ToString("X");

答案 2 :(得分:1)

试试这个

string str = nudID.Value.ToString("X2");

答案 3 :(得分:0)

这应该有效:

string str = ((int)nudID.Value).ToString("X");

您需要将十进制值解析为int。如果您愿意,可以使用TryParse使它更安全。