我有一个字符串
string w = y + "/" + fromRow[col2.ColumnName];
w 返回类似 0/5 的值
“0/5”,我必须在 int32 上转换它。我试过
int.parse,但其显示错误输入字符串的格式不正确。
string w="0/5"
int m=int32.parse(W)
我也尝试过 convert.toint32 但它也显示错误。
string w="0/5"
int m=Convert.ToInt32(W)
我有一个字符串
string w = y + "/" + fromRow[col2.ColumnName];
w 返回类似 0/5 的值
“0/5”,我必须在 int32 上转换它。我试过
int.parse,但其显示错误输入字符串的格式不正确。
string w="0/5"
int m=int32.parse(W)
我也尝试过 convert.toint32 但它也显示错误。
string w="0/5"
int m=Convert.ToInt32(W)
分别解析它们,然后划分。
int x = Int32.Parse(y);
int y = Int32.Parse(fromRow[col2.ColumnName]);
int m = x/y;
虽然你的意思是使用双打?在这里使用没有多大意义,int因为您正在划分。
编辑:根据评论,您希望逐字存储0/5在数据库中。整数不包含这样的值。
我认为您需要更改数据库以存储 astring而不是允许您存储0/5.
如果您想0/5从数据库中解析回 2 个单独的整数,String.Split请在字符串上使用,并传递它/
如果字符串"0/5"仅用于显示目的,那么您只需存储构成显示值的两个整数分量。您可以根据需要使用这两个值来创建“显示字符串”。
例如,如果这是测验的用户分数,那么您的两个值是“用户分数”和“最高分数”。每个都将作为一个存储int在两个单独的数据库字段中。
然后,只要您需要显示它,您只需重新创建字符串,例如:
string display = string.Format("{0}/{1}", userScore, maximumScore);
//where totalScore and maximumScore have been pulled from your DB
当然,在测验的示例中,您可能无论如何都能够从其他数据(例如问题数)重新计算“最高分数”,因此只需要存储第一个值,userScore.
在您的示例情况下,只需将值存储y在数据库中。
整数是没有小数部分的单个数字,例如 3、28、-76、154 等。您有一个字符串“0/5”。“0/5”不代表一个数字(特别是你说过它不是分数),所以它不能转换为整数,因为它不是同一种数据。您需要更改要存储它的列的数据类型,或以不同的方式存储数据(例如,将两个整数存储在不同的列中)。
Try this:
string line = "1/5";
int idx = line.IndexOf('/');
Console.WriteLine(idx);
int a = Int32.Parse(line.Substring(0, idx));
Console.WriteLine(a);
int b = Int32.Parse(line.Substring(idx+1, line.Length - (idx+1)));
Console.WriteLine(b);
decimal result = a/b;
Console.WriteLine(result);