【问题标题】:string Convert to int value? [duplicate]string 转换为 int 值? [复制]
【发布时间】:2013-05-23 00:30:15
【问题描述】:

我想将字符串值转换为int值,所以我尝试了这些东西:

// 1.
string a = "4163";
int b = int.Parse(a);

// 2.
int intValue;
int.TryParse(a, out intValue);

// 3.
int b = Convert.ToInt32(a);

但我的输出总是这样:

它总是写0x00001043,但我需要4163 作为输出。我的代码有什么问题?

【问题讨论】:

  • 显示你用来输出b的代码;可能你正在使用{0:X}
  • 如何打印输出?
  • 所有这些都有效。你如何打印你的输出?顺便说一句,0x00001043 是十六进制的 4163。
  • 代码看起来不错,我想与您的输出有关。请提供更多代码。
  • 旁注:“输出”通常是程序的控制台输出(或其他形式,如文本文件)。您在问题中显示的内容通常通过显式调用“debugger XXX”-“debugger view”、“watch list”...

标签: c# asp.net


【解决方案1】:

您的代码应该按预期工作。可能您需要更改显示设置。所以做这样的事情

右击Watch Window并取消选择Hexadecimal Display 价值观。

【讨论】:

  • +1,看here
  • 你在这个答案中被复制然后过去:stackoverflow.com/questions/3354453/…
  • @RameshRams 哦,真的吗?
  • 是的..你可以看到!!!!这不是答案。就像评论一样。这个答案可能重复
  • @RameshRams 那么你认为 OP 问题的正确答案是什么?
【解决方案2】:

如果您确定它会正确解析,请使用

int.Parse(string)

如果不是,请使用

int i;
bool success = int.TryParse(string, out i);

小心!在这种情况下,TryParse 之后 i 将等于 0,而不是 10。

int i = 10;
bool failure = int.TryParse("asdf", out i);

这是因为 TryParse 使用的是 out 参数,而不是 ref 参数。

【讨论】:

    【解决方案3】:

    你也可以使用

     int i = Convert.ToInt16("1234"); 
    

    我认为您的转换方式也是正确的,但是您在控制台上显示时遇到了问题。

    尝试在 html 或其他地方显示转换后的整数

    【讨论】:

      【解决方案4】:

      嘿,你所有的转换方式都是给出正确的答案。您不会在快速观看中看到答案。您可以在b 上检查最终值。

      样品

      // 1.
      string a = "4163";
      int b = Convert.ToInt32(a);
      

      b 是返回正确答案,您要检查添加以下行

      int c =b;//now it's show result for  4163
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-03-28
        • 2018-09-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多