|
1/2 또는 1/3 은 int 형 값을 int 형 으로 나눈것입니다.
int / int 했을때 int형으로 결과가 나와야 맞겠죠?
1/2.0 이렇게 표현하면 int / float 이 됩니다.
결과는 당연히 float 으로 나오구요
그럼..
라이손레종ㅎ 님이 쓰신 글 :
: 빠른 답변 감사합니다 ^^
: 그런데 왜 그런건가요 ? 원래 그랬던가요 ? c만 했던 저라 당혹 스러웠습니다.
:
:
:
: 272 님이 쓰신 글 :
: : as[0] = 2+1/2.0;
: : as[1] = 2+3/4.0;
: : as[2] = 2+3*4.0;
: : ass = 2+3/4;
: :
: : 라이손레종ㅎ 님이 쓰신 글 :
: : : 흠 정말 산수 계산하는데 값이 틀리게 나옵니다. 왜 그런지요 ?
: : :
: : : 예를들어
: : : double as[3]; int ass;
: : : as[0] = 2+1/2;
: : : as[1] = 2+3/4;
: : : as[2] = 2+3*4;
: : : ass = 2+3/4;
: : :
: : : Memo1->Lines->Add(AnsiString().sprintf("2+1/2 = %f",as[0]));
: : : Memo1->Lines->Add(AnsiString().sprintf("2+3/4 = %f",as[1]));
: : : Memo1->Lines->Add(AnsiString().sprintf("2+3*4 = %f",as[2]));
: : : Memo1->Lines->Add(AnsiString().sprintf("2+3/4 = %d",ass));
: : :
: : : 위 코딩으로 했을시 결과는
: : :
: : : 2+1/2 = 2.000000
: : : 2+3/4 = 2.000000
: : : 2+3*4 = 14.000000
: : : 2+3/4 = 2
: : :
: : : 이렇습니다. 왜.. 단순 산수 계산이 틀리게 되는지요 ? 곱샘은 맞게 나오네요.. 나누기는 틀리게 되고.;
: : : 무엇이 문제인지요 ?
|