7

我完全不解

string temp = "73";
int tempc0 = Convert.ToInt32(temp[0]);
int tempc1 = Convert.ToInt32(temp[1]);
MessageBox.Show(tempc0 + "*" + tempc1 + "=" + tempc0*tempc1);

我希望:7*3=21

但后来我收到:55*51=2805

4

7 回答 7

5

55 和 51 是它们在 ascii 图表中的位置。链接到图表 - http://kimsehoon.com/files/attach/images/149/759/007/ascii%281%29.png

尝试使用int.parse

于 2013-03-14T08:56:27.523 回答
5

那是字符 7 和 3 的 ASCII 值。如果您想要数字表示,那么您可以将每个字符转换为字符串,然后使用Convert.ToString

string temp = "73";
int tempc0 = Convert.ToInt32(temp[0].ToString());
int tempc1 = Convert.ToInt32(temp[1].ToString());
MessageBox.Show(tempc0 + "*" + tempc1 + "=" + tempc0*tempc1);
于 2013-03-14T08:56:52.480 回答
1

这有效:

    string temp = "73";
    int tempc0 = Convert.ToInt32(temp[0].ToString());
    int tempc1 = Convert.ToInt32(temp[1].ToString());
    Console.WriteLine(tempc0 + "*" + tempc1 + "=" + tempc0 * tempc1);           

您必须执行 ToString() 才能获得实际的字符串表示形式。

于 2013-03-14T08:57:09.920 回答
1

您将获得 7 和 3 的 ASCII 码,分别为 55 和 51。

用于int.Parse()将字符或字符串转换为值。

int tempc0 = int.Parse(temp[0].ToString());
int tempc1 = int.Parse(temp[1].ToString());

int product = tempc0 * tempc1; // 7 * 3 = 21

int.Parse()不接受 achar作为参数,因此您必须先转换为string,或temp.SubString(0, 1)改为使用。

于 2013-03-14T08:59:23.927 回答
1

这很有效,并且比使用int.Parse()or更高效Convert.ToInt32()

string temp = "73";
int tempc0 = temp[0] - '0';
int tempc1 = temp[1] - '0';
MessageBox.Show(tempc0 + "*" + tempc1 + "=" + tempc0 * tempc1);
于 2013-03-14T09:00:08.840 回答
1

将字符转换为整数可为您提供 Unicode 字符代码。如果将字符串转换为整数,它将被解析为数字:

string temp = "73";
int tempc0 = Convert.ToInt32(temp.Substring(0, 1));
int tempc1 = Convert.ToInt32(temp.Substring(1, 1));
于 2013-03-14T09:01:35.953 回答
1

当你写作时string temp = "73",你的temp[0]temp[1]正在成为char价值观。

Convert.ToInt32 Method(Char)方法

将指定 Unicode 字符的值转换为 等效的32 位有符号整数。

这意味着将 a 转换char为 anint32将为您提供 unicode 字符代码。

你只需要使用.ToString()你的方法temp[0]temp[1]价值观。像;

string temp = "73";
int tempc0 = Convert.ToInt32(temp[0].ToString());
int tempc1 = Convert.ToInt32(temp[1].ToString());
MessageBox.Show(tempc0 + "*" + tempc1 + "=" + tempc0*tempc1);

这是一个演示

于 2013-03-14T09:05:05.137 回答