Q&A

  • StringGrid에 통화형식으로 바꾼 내용을 다시 원래의 형식으로 입력받는데 안되요~
StringGrid1.Cells[1,1]:=FormatFloat('###,###,###',

StrtoFloatStringGrid1.Cells[1,1]);



위와 같이 코딩해서 StringGrid1에 통화형식으로 입력했습니다.

그런데 다시 StringGrid1에서 위의 형식을 원래의 형식(통화형식이아닌!)으로

변수에 입력받으려면 어떻게 해야 합니까?

(입력한 금액을 다시 정수로 받아 드릴려구요~)



StrAmount:=FormatFloat('#########',StrtoFloat(StringGrid1.Cells[1,1]));

kkk:=strtoint(strAmount);



이렇게 코딩했는데요 코딩은 문제 없는데 실행하면 에러가 생겨요!

답변 좀 주세요~ 감사합니다.



4  COMMENTS
  • Profile
    초보자 2001.02.08 02:19
    hyo wrote:

    > StringGrid1.Cells[1,1]:=FormatFloat('###,###,###',

    > StrtoFloatStringGrid1.Cells[1,1]);

    >

    > 위와 같이 코딩해서 StringGrid1에 통화형식으로 입력했습니다.

    > 그런데 다시 StringGrid1에서 위의 형식을 원래의 형식(통화형식이아닌!)으로

    > 변수에 입력받으려면 어떻게 해야 합니까?

    > (입력한 금액을 다시 정수로 받아 드릴려구요~)

    >

    > StrAmount:=FormatFloat('#########',StrtoFloat(StringGrid1.Cells[1,1]));

    > kkk:=strtoint(strAmount);

    >

    > 이렇게 코딩했는데요 코딩은 문제 없는데 실행하면 에러가 생겨요!

    > 답변 좀 주세요~ 감사합니다.

    >



    StrAmount:=FormatFloat('#########',StrtoFloat(StringGrid1.Cells[1,1]));

    우선 이문장에서 에라가 나는건 당연한겁니다.

    StringGrid1.Cells[1,1]:=FormatFloat('###,###,###',

    StrtoFloatStringGrid1.Cells[1,1]);

    이곳에선 우선 스트링 그리드에 있는 데이타는 100000000 이런 형식이겠죠..이걸 컴마를 붙이는건 가능합니다. 그런데 100,000,000 이 데이타는 일단은 스트링입니다. 근데 이걸 플롯형으루 다시바꾼다는건 컴마가 있기에 형자체로의 변환이 될수 없답니다.

    그렇기 때문에 포멧플롯을하기도 전에 에라가 발생하게 돼는거죠...^^



    컴마를 없애고 싶으면 플롯포멧을 하는게 아니라..컴마를 삭제 시켜줘야합니다.



    While Pos(',', StrtoFloatStringGrid1.Cells[1,1]) > 0 Do

    delete(str_1, Pos(',', StrtoFloatStringGrid1.Cells[1,1]), 1);

    이렇게 하시면 될겁니다.



    얼마전에두 누군가가 이질문에 답변해줬던걸루 기억하는데...



    암턴 즐프하세요...

  • Profile
    hyo 2001.02.08 02:26
    초보자 wrote:

    > hyo wrote:

    > > StringGrid1.Cells[1,1]:=FormatFloat('###,###,###',

    > > StrtoFloatStringGrid1.Cells[1,1]);

    > >

    > > 위와 같이 코딩해서 StringGrid1에 통화형식으로 입력했습니다.

    > > 그런데 다시 StringGrid1에서 위의 형식을 원래의 형식(통화형식이아닌!)으로

    > > 변수에 입력받으려면 어떻게 해야 합니까?

    > > (입력한 금액을 다시 정수로 받아 드릴려구요~)

    > >

    > > StrAmount:=FormatFloat('#########',StrtoFloat(StringGrid1.Cells[1,1]));

    > > kkk:=strtoint(strAmount);

    > >

    > > 이렇게 코딩했는데요 코딩은 문제 없는데 실행하면 에러가 생겨요!

    > > 답변 좀 주세요~ 감사합니다.

    > >

    >

    > StrAmount:=FormatFloat('#########',StrtoFloat(StringGrid1.Cells[1,1]));

    > 우선 이문장에서 에라가 나는건 당연한겁니다.

    > StringGrid1.Cells[1,1]:=FormatFloat('###,###,###',

    > StrtoFloatStringGrid1.Cells[1,1]);

    > 이곳에선 우선 스트링 그리드에 있는 데이타는 100000000 이런 형식이겠죠..이걸 컴마를 붙이는건 가능합니다. 그런데 100,000,000 이 데이타는 일단은 스트링입니다. 근데 이걸 플롯형으루 다시바꾼다는건 컴마가 있기에 형자체로의 변환이 될수 없답니다.

    > 그렇기 때문에 포멧플롯을하기도 전에 에라가 발생하게 돼는거죠...^^

    >

    > 컴마를 없애고 싶으면 플롯포멧을 하는게 아니라..컴마를 삭제 시켜줘야합니다.

    >

    > While Pos(',', StrtoFloatStringGrid1.Cells[1,1]) > 0 Do

    > delete(str_1, Pos(',', StrtoFloatStringGrid1.Cells[1,1]), 1);

    > 이렇게 하시면 될겁니다.

    >

    > 얼마전에두 누군가가 이질문에 답변해줬던걸루 기억하는데...

    >

    > 암턴 즐프하세요...

  • Profile
    초보자 2001.02.08 03:00
    hyo wrote:

    > 초보자 wrote:

    > > hyo wrote:

    > > > StringGrid1.Cells[1,1]:=FormatFloat('###,###,###',

    > > > StrtoFloatStringGrid1.Cells[1,1]);

    > > >

    > > > 위와 같이 코딩해서 StringGrid1에 통화형식으로 입력했습니다.

    > > > 그런데 다시 StringGrid1에서 위의 형식을 원래의 형식(통화형식이아닌!)으로

    > > > 변수에 입력받으려면 어떻게 해야 합니까?

    > > > (입력한 금액을 다시 정수로 받아 드릴려구요~)

    > > >

    > > > StrAmount:=FormatFloat('#########',StrtoFloat(StringGrid1.Cells[1,1]));

    > > > kkk:=strtoint(strAmount);

    > > >

    > > > 이렇게 코딩했는데요 코딩은 문제 없는데 실행하면 에러가 생겨요!

    > > > 답변 좀 주세요~ 감사합니다.

    > > >

    > >

    > > StrAmount:=FormatFloat('#########',StrtoFloat(StringGrid1.Cells[1,1]));

    > > 우선 이문장에서 에라가 나는건 당연한겁니다.

    > > StringGrid1.Cells[1,1]:=FormatFloat('###,###,###',

    > > StrtoFloatStringGrid1.Cells[1,1]);

    > > 이곳에선 우선 스트링 그리드에 있는 데이타는 100000000 이런 형식이겠죠..이걸 컴마를 붙이는건 가능합니다. 그런데 100,000,000 이 데이타는 일단은 스트링입니다. 근데 이걸 플롯형으루 다시바꾼다는건 컴마가 있기에 형자체로의 변환이 될수 없답니다.

    > > 그렇기 때문에 포멧플롯을하기도 전에 에라가 발생하게 돼는거죠...^^

    > >

    > > 컴마를 없애고 싶으면 플롯포멧을 하는게 아니라..컴마를 삭제 시켜줘야합니다.

    > >

    > > While Pos(',', StrtoFloatStringGrid1.Cells[1,1]) > 0 Do

    > > delete(str_1, Pos(',', StrtoFloatStringGrid1.Cells[1,1]), 1);

    > > 이렇게 하시면 될겁니다.

    > >

    > > 얼마전에두 누군가가 이질문에 답변해줬던걸루 기억하는데...

    > >

    > > 암턴 즐프하세요...



    While Pos(',', StrtoFloatStringGrid1.Cells[1,1]) > 0 Do

    delete(StrtoFloatStringGrid1.Cells[1,1], Pos(',', StrtoFloatStringGrid1.Cells[1,1]), 1);



    그냥 소스에서 베껴쓰다보니..고치는걸 깜빡했네요..



    글구 왠만하면 함수로 만들어쓰세요.. 어쩔땐 delete때문에 에라가 나거든요..



  • Profile
    hyo 2001.02.08 03:36
    초보자 wrote:

    > hyo wrote:

    > > 초보자 wrote:

    > > > hyo wrote:

    > > > > StringGrid1.Cells[1,1]:=FormatFloat('###,###,###',

    > > > > StrtoFloatStringGrid1.Cells[1,1]);

    > > > >

    > > > > 위와 같이 코딩해서 StringGrid1에 통화형식으로 입력했습니다.

    > > > > 그런데 다시 StringGrid1에서 위의 형식을 원래의 형식(통화형식이아닌!)으로

    > > > > 변수에 입력받으려면 어떻게 해야 합니까?

    > > > > (입력한 금액을 다시 정수로 받아 드릴려구요~)

    > > > >

    > > > > StrAmount:=FormatFloat('#########',StrtoFloat(StringGrid1.Cells[1,1]));

    > > > > kkk:=strtoint(strAmount);

    > > > >

    > > > > 이렇게 코딩했는데요 코딩은 문제 없는데 실행하면 에러가 생겨요!

    > > > > 답변 좀 주세요~ 감사합니다.

    > > > >

    > > >

    > > > StrAmount:=FormatFloat('#########',StrtoFloat(StringGrid1.Cells[1,1]));

    > > > 우선 이문장에서 에라가 나는건 당연한겁니다.

    > > > StringGrid1.Cells[1,1]:=FormatFloat('###,###,###',

    > > > StrtoFloatStringGrid1.Cells[1,1]);

    > > > 이곳에선 우선 스트링 그리드에 있는 데이타는 100000000 이런 형식이겠죠..이걸 컴마를 붙이는건 가능합니다. 그런데 100,000,000 이 데이타는 일단은 스트링입니다. 근데 이걸 플롯형으루 다시바꾼다는건 컴마가 있기에 형자체로의 변환이 될수 없답니다.

    > > > 그렇기 때문에 포멧플롯을하기도 전에 에라가 발생하게 돼는거죠...^^

    > > >

    > > > 컴마를 없애고 싶으면 플롯포멧을 하는게 아니라..컴마를 삭제 시켜줘야합니다.

    > > >

    > > > While Pos(',', StrtoFloatStringGrid1.Cells[1,1]) > 0 Do

    > > > delete(str_1, Pos(',', StrtoFloatStringGrid1.Cells[1,1]), 1);

    > > > 이렇게 하시면 될겁니다.

    > > >

    > > > 얼마전에두 누군가가 이질문에 답변해줬던걸루 기억하는데...

    > > >

    > > > 암턴 즐프하세요...

    >

    > While Pos(',', StrtoFloatStringGrid1.Cells[1,1]) > 0 Do

    > delete(StrtoFloatStringGrid1.Cells[1,1], Pos(',', StrtoFloatStringGrid1.Cells[1,1]), 1);

    >

    > 그냥 소스에서 베껴쓰다보니..고치는걸 깜빡했네요..

    >

    > 글구 왠만하면 함수로 만들어쓰세요.. 어쩔땐 delete때문에 에라가 나거든요..

    >



    hyo Write>>>>>



    S:=StringReplace(TStringGrid(Components[t]).Cells[1,j], ',', '',[rfReplaceAll]);

    k:=strtoint(s);



    님이 갈켜준 방법도 좋은 방법인데요~

    위에 방법을 쓰니깐 코딩도 짧아 지고 좋네요~

    다른 곳에도 질문을 했었는데 답변을 해주셨거든요~^^

    전 맨날 질문만하거든요~~ ^^ 언제쯤 답변한번해보나...

    무지 무지 감사하고요 지금 궁금한게 있어서 질문 올릴껀데

    보시고 알면 답변 부탁드립니다.

    행복하세용~~