我有一个非常简单的代码,我从数字更新中获取一个值,然后我将其转换为十六进制。 (对于numericupdown Hexadecimal
属性设置为true)
我从位于winForm中的nud中选择FF
。然后在代码中
string str = nudID.Value.ToString("X");
但这不起作用,我得到格式异常
答案 0 :(得分:4)
NumericUpDown值不是Int类型,它是Decimal。也许这是问题?
答案 1 :(得分:3)
NumericUpDown.Value
返回Decimal
。 Decimal.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使它更安全。