2013-08-07 5 views
-4

I가 0/5 "0/5"변환 문자열은 C#

같은 문자열

string w = y + "/" + fromRow[col2.ColumnName]; 

및 w 반환 값을 가지고 내가 INT32에 변환 할 필요에서 int로. 시도했습니다

int.parse이지만 표시되는 오류 입력 문자열의 형식이 올바르지 않습니다.

string w="0/5" 
int m=int32.parse(W) 

나는 또한 convert.toint32를 시도했지만 오류도 표시합니다.

string w="0/5" 
    int m=Convert.ToInt32(W) 
+3

05 (8 진수 5), 0, 5, 무엇으로 변환 하시겠습니까? –

+2

무엇을 반환 하시겠습니까? –

+2

'int'는'0/5'를 파싱하려고 할 때 어떤 값을 사용해야합니까? – Shaamaan

답변

0

정수를 사용하면 문자열 "0/5"아니오 소수 부분과 하나의 숫자, 예를 들어, 3, 28, -76, 154, 등이다. "0/5"는 숫자를 나타내지 않으므로 (특히 분수가 아니라고 말한 것처럼) 동일한 종류의 데이터가 아니기 때문에 정수로 변환 할 수 없습니다. 데이터를 저장하려는 열의 데이터 유형을 변경하거나 데이터를 다른 방식으로 저장해야합니다 (예 : 두 개의 정수를 별도의 열에 저장).

+0

정말 고마워요. coloumn 's의 데이터 유형을 변경했습니다. – user2516261

1

따로 따로 구문 분석 한 다음 나누기.

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

복식을 사용 하시겠습니까? 당신이 나누기 때문에 여기에 int을 사용하는 것은 의미가 없습니다.

EDIT : 주석에 따라 문자 그대로 0/5을 데이터베이스에 저장하려고합니다. 정수는 그런 값을 가지고 있지 않습니다.

을 저장하는 대신 string을 저장하도록 데이터베이스를 변경해야한다고 생각합니다.

당신은 문자열 "0/5" 만 표시 목적으로 사용이 /

+0

0/5 int 일이 발생하지만 분명히 입력을 쉽게 다른 경우 포함 할 수 있습니다 1/5처럼. OP는 복식을 원할 수도 있고 바닥/라운드/원을 원할 수도 있지만 명확히해야합니다. – Michelle

0

경우에 당신 만 저장해야 통과, 다시 2 개 별도의 정수로에서 당신의 데이터베이스에서 0/5을 구문 분석 문자열에 String.Split를 사용하려는 경우 표시 값을 구성하는 두 개의 정수 구성 요소. 이 두 값을 사용하여 필요에 따라 "표시 문자열"을 만듭니다.

예를 들어, 이것이 퀴즈의 사용자 점수 인 경우 두 값은 "사용자 점수"및 "최대 점수"입니다. 각각은 두 개의 개별 데이터베이스 필드에 int으로 저장됩니다. 퀴즈의 예에서, 당신은 가능성에서 "최고 점수"를 다시 계산 할 수있을 것이다, 물론

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

:

그럼 언제 당신은 단지 예를 들어, 문자열을 다시 표시 할 필요가 어쨌든 다른 데이터 (예 : Number of Questions)가 있으므로 첫 번째 값인 userScore 만 저장할 필요가 있습니다.

예를 들어 y 값을 데이터베이스에 저장하면됩니다.

-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); 
+0

무엇? 그냥 싫다. – tnw