-4

私は文字列を持っています

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)
4

4 に答える 4

1

それらを別々に解析してから、分割します。

int x = Int32.Parse(y);
int y = Int32.Parse(fromRow[col2.ColumnName]);
int m = x/y;

しかし、あなたはダブルスを使うつもりですか?int分割しているので、ここで使用してもあまり意味がありません。

EDIT:コメントに基づいて、文字通りデータベースに保存したいと考えて0/5います。整数はそのような値を保持しません。

stringを保存できるように、代わりにa を保存するようにデータベースを変更する必要があると思います0/5

0/5データベースから解析して 2 つの個別の整数に戻したい場合String.Splitは、文字列で使用して、それを渡します/

于 2013-08-07T12:41:59.197 に答える
0

整数は、3、28、-76、154 などの小数部分のない単一の数値です。文字列 "0/5" があります。「0/5」は数値を表していないため(特に分数ではないと言ったように)、同じ種類のデータではないため、整数に変換できません。格納する列のデータ型を変更するか、別の方法でデータを格納する必要があります (たとえば、2 つの整数を別々の列に格納するなど)。

于 2013-08-07T12:59:07.280 に答える
0

文字列"0/5"が表示目的でのみ使用される場合は、表示値を構成する 2 つの整数コンポーネントのみを格納する必要があります。これら 2 つの値を使用して、必要に応じて「表示文字列」を作成します。

たとえば、これがクイズのユーザー スコアである場合、2 つの値は「ユーザー スコア」と「最大スコア」です。それぞれが としてint2 つの別個のデータベース フィールドに格納されます。

次に、表示する必要があるときはいつでも、次のように文字列を再作成します。

string display = string.Format("{0}/{1}", userScore, maximumScore);
//where totalScore and maximumScore have been pulled from your DB

もちろん、クイズの例では、他のデータ (例: 問題数) から「最大スコア」を再計算できる可能性が高いため、最初の値userScore.

あなたの例では、の値をyデータベースに保存するだけです。

于 2013-08-07T12:58:47.950 に答える
-2
   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);
于 2013-08-07T12:59:06.163 に答える