【问题标题】:simple int to hex conversion not working简单的 int 到 hex 转换不起作用
【发布时间】:2013-12-15 11:47:14
【问题描述】:

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

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

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

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

【问题讨论】:

  • Value的内容是什么?
  • 显示是255

标签: c# int hex


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    格式参数可以是除 D、R 和 X 之外的任何有效的标准数字格式说明符

    改编来自this solution的一些代码,如果您使用的是.NET 4.0或更高版本,请尝试以下操作:

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

    【讨论】:

      【解决方案3】:

      试试这个

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

      【讨论】:

        【解决方案4】:

        这应该可行:

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

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

        【讨论】:

          猜你喜欢
          • 2013-02-10
          • 2013-08-07
          • 2015-10-06
          • 2015-11-18
          • 2012-08-16
          • 2011-06-02
          • 1970-01-01
          • 2015-09-27
          • 2016-07-30
          相关资源
          最近更新 更多