float z = 0.0; 선언해주고
연산할때 float 형으로 연산해줘야한다.
1. z = ((float)a + b) / 2
2. z = (a + b) / 2.0
3. z = (float)(a+b) / 2
이런식으로 연산식에서 하나라도 실수형이여야 실수형 변수에 옳바른 연산값을 넣을 수 있다
7777777code(codesexer)2021-05-11 12:39
답글
double 형도 같다
7777777code(codesexer)2021-05-11 12:40
답글
정말 간사합니다 ㅠㅠ - dc App
익명(211.36)2021-05-11 12:40
답글
감사합니다ㅠ - dc App
익명(211.36)2021-05-11 12:40
이해할 수 있게 자세히 설명해주면 현재 z 는 int z 로 선언되어 있기 때문에 소수점 값을 저장할 수 없다. 그러므로 연산중에 소수점 값이 나오더라도 z = (a+b)/2 여기에서 무조껀 정수형으로만 저장된다(소수점 다 버리고 저장) 그렇기 때문에 안돼는거다
7777777code(codesexer)2021-05-11 12:41
답글
그런 의미였는지 단번에 이해했어요 ! 고마워요 ㅠㅠㅍㅍㅍ 뽀뽀해줄게요 - dc App
익명(211.36)2021-05-11 12:42
답글
바로 이해했다니 좋은 프로그래머이군 킹정한다! 화이팅! 자질이 충만하다!
7777777code(codesexer)2021-05-11 12:48
답글
조금만 더 여쭤봐도 될까요! /2.0과 2.00은 차이가 있나요? - dc App
익명(211.36)2021-05-11 12:49
답글
음..그러니까 2.0이 실수를 나타낼뿐인지 소수점 첫째자리까지 나타내는것인지 궁금해요 ㅎ - dc App
익명(211.36)2021-05-11 12:51
답글
자네는 천재인가? 엄청난 발상이군 2진수로 본다면 큰 차이가 없겠지만, 컴파일러에서 이걸 어떻게 해석하냐에 따라 컴파일 에러나, 이상한 결과값을 돌려받을 수도 있는 부분이다. 즉 C 컴파일러에게 치명적인 버그 혹은 취약점이 될 수 있겠군
7777777code(codesexer)2021-05-11 12:53
답글
ㅎ.. 초보니까 그냥 float a+b 로 갈게요 ㅠㅠㅠ - dc App
익명(211.36)2021-05-11 12:54
답글
C에서 숫자 2와 2.0은 정수 타입 숫자냐, 실수 타입 숫자냐의 차이가 있다. 이건 메모리에 저장될때 다른 데이터 타입으로 저장되고, 이진수 (binary) 단계에서 데이터를 해석할때 각 부호의 위치가 다른 의미를 나타내는 차이로 이어진다
z가 double이 돼야 할 것 같은데
조금더 설명해주실수있나요 ㅠㅠ - dc App
int는 정수형이잖아
다시해볼게요 ㅠㅠ - dc App
float z = 0.0; 선언해주고 연산할때 float 형으로 연산해줘야한다. 1. z = ((float)a + b) / 2 2. z = (a + b) / 2.0 3. z = (float)(a+b) / 2 이런식으로 연산식에서 하나라도 실수형이여야 실수형 변수에 옳바른 연산값을 넣을 수 있다
double 형도 같다
정말 간사합니다 ㅠㅠ - dc App
감사합니다ㅠ - dc App
이해할 수 있게 자세히 설명해주면 현재 z 는 int z 로 선언되어 있기 때문에 소수점 값을 저장할 수 없다. 그러므로 연산중에 소수점 값이 나오더라도 z = (a+b)/2 여기에서 무조껀 정수형으로만 저장된다(소수점 다 버리고 저장) 그렇기 때문에 안돼는거다
그런 의미였는지 단번에 이해했어요 ! 고마워요 ㅠㅠㅍㅍㅍ 뽀뽀해줄게요 - dc App
바로 이해했다니 좋은 프로그래머이군 킹정한다! 화이팅! 자질이 충만하다!
조금만 더 여쭤봐도 될까요! /2.0과 2.00은 차이가 있나요? - dc App
음..그러니까 2.0이 실수를 나타낼뿐인지 소수점 첫째자리까지 나타내는것인지 궁금해요 ㅎ - dc App
자네는 천재인가? 엄청난 발상이군 2진수로 본다면 큰 차이가 없겠지만, 컴파일러에서 이걸 어떻게 해석하냐에 따라 컴파일 에러나, 이상한 결과값을 돌려받을 수도 있는 부분이다. 즉 C 컴파일러에게 치명적인 버그 혹은 취약점이 될 수 있겠군
ㅎ.. 초보니까 그냥 float a+b 로 갈게요 ㅠㅠㅠ - dc App
C에서 숫자 2와 2.0은 정수 타입 숫자냐, 실수 타입 숫자냐의 차이가 있다. 이건 메모리에 저장될때 다른 데이터 타입으로 저장되고, 이진수 (binary) 단계에서 데이터를 해석할때 각 부호의 위치가 다른 의미를 나타내는 차이로 이어진다
즉 2 는 (int, 정수)
2.0은 (float or double, 소수)
컴파일러는 숫자 뒤에 . 하나 찍기만 하면 다 소수로 생각한다
감사합니다 ㅠㅠ 완전히 이해했어요!! - dc App
친절한 설명 너무너무너무 감사합니다 - dc App
좋은 떡잎이다 좋은 프로그래머 될꺼다 화이팅! 응원한다!
네! 다음에 만나요 - dc App