static void Main(string[] args)
{
    string str_val = "8584348,894";
    //int prefix = Convert.ToInt32(str_val[0]); //prefix = 56 O_o
    //int prefix = (int)str_val[0]; //what, again 56? i need 8!
    int prefix = Convert.ToInt32("8"); //at least this works -_-
}你知道怎么把第一个符号转换成右边的数值吗?
发布于 2012-07-26 21:17:32
如果您使用:
Convert.ToInt32(str_val[0]);那么你实际上是在调用重载:
Convert.ToInt32(char val);它给出了作为参数传递的Unicode/Ascii字符数。
如果您想转换第一个字符,则需要强制其为字符串类型:
Convert.ToInt32(str_val.Substring(0, 1));这样,您就可以调用重载:
Convert.ToInt32(string val);它实际上做了您想要做的事情(将字符串值转换为该字符串表示的int值)。
发布于 2012-07-26 21:17:11
您试图解析一个字符串,但传入了一个char。首先将字符转换为字符串。
int prefix = Convert.ToInt32(str_val[0].ToString());因此,字符值8是ASCII值56,您要做的是将该值解释为字符串而不是ASCII值。通过使用.ToString()方法,您可以将字符转换为可由ToInt32方法读取的以null结尾的字符串。
发布于 2012-07-26 21:16:47
通过这种方式Convert.ToInt32(str_val[0]),您将读取字符串索引处的字符,该字符串将字符转换为整型。int是它的ascii。
https://stackoverflow.com/questions/11670105
复制相似问题