我想将字符串值转换为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
作为输出。我的代码出了什么问题?
答案 0 :(得分:8)
您的代码应该按预期工作。可能是您需要更改显示设置。所以做这样的事情
右键单击Watch Window并取消选择十六进制显示 值。
答案 1 :(得分:0)
如果您确定它会正确解析,请使用
int.Parse(string)
如果不是,请使用
int i;
bool success = int.TryParse(string, out i);
小心!在这种情况下,我将在TryParse之后等于0,而不是10。
int i = 10;
bool failure = int.TryParse("asdf", out i);
这是因为TryParse使用out参数,而不是ref参数。
答案 2 :(得分:0)
您也可以使用
int i = Convert.ToInt16("1234");
我认为您转换的方式也是正确的,但是当您在控制台上显示时,您遇到了问题。
尝试在html或其他地方显示转换后的整数
答案 3 :(得分:0)
嘿你所有的转换方式都给出了正确答案。你很快就看不到答案了。您可以在b
上查看最终价值。
表示样本
// 1.
string a = "4163";
int b = Convert.ToInt32(a);
b
返回正确答案,您要检查下面的行添加
int c =b;//now it's show result for 4163