분수계산문제
백합
2023.04.01
질문 제목 : 분수계산문제분수계산할떄 정수형으로출력하면 원래 답이안나오나요/??질문 내용 :
#include iostream
using namespace std;
int main()
{
int a,c;
a=0;
float b;
b=0;
cin c;
do
{
a++;
b+=(float)(a*2-1)/(a*2);
}
while(ac);
cout b endl;
return 0;
}
제가 맨첨에는 b를 int로 쓰고 출력햇을대는 입력값을 아무거나집어넣어도 무조건 0이나왓는데
float로바꾸고 출력했을때는 답이나왔어요
분수계산 출력할때는 원래 실수형으로만출력되나욤?
-
good
int 는 정수형을 나타내고, float는 실수형을 나타냅니다.
0.5f(실수형) - 0(정수형), 1.5f(실수형) - 1(정수형) 입니다.
위 소스 핵심은 b+=(float)(a*2-1)/(a*2); 이 부분이고
1/2 + 3/4 + 5/6 + 7/8 + ... 에 값은 0.xxx 로 나오기 때문에
int 형으로는 0만 출력됩니다.