출력값이 계속 6자리로 나와요
double쓰면 16자리 까지 나온다고 알고있는데
#include <stdio.h>
int main()
{
double f;
int x;
double a = 1;
printf("제곱근을 찾을 수 입력:\n");
scanf("%Lf",&f);
printf("소수접 자리 수 :\n");
scanf("%d",&x);
x=x+1;
double i = 0;
for (int j=0;j<x;j++)
{
while (i*i<=f)
i=i+(1/a);
i=i-(1/a);
printf("%Lf\n",i);
a=a*10;
}
return 0;
}
출력:
제곱근을 찾을 수 입력:
2
소수접 자리 수 :
10
1.000000
1.400000
1.410000
1.414000
1.414200
1.414210
1.414213
1.414214
1.414214
1.414214
1.414214
--------------------------------
Process exited after 3.21 seconds with return value 0
계속하려면 아무 키나 누르십시오 . . .
선언을 double로 했는데 long double로 받아봐야 당연히 double로 나오지 않을까?
6자리는 잠만
double이 16자리 까지 된다고 알고
있는데
그전에 코드가 문제가 있는것 같은데?
%.14f로 하니까 나오는거 같다
아니 그전에 코드가 문제가 있음
오 되네용
코드는 쟤가 알아서 할 일이고 출력은 저렇게 하면 나온다고
어떤데에서여?
내가 이상한거냐?
https://ideone.com/ETOaFk
컴파일 차이인가 음..
컴파일러 차이 맞는 듯
혹시 %.14f 에서 14를 변수 x로 대체 하는거 가능ㅎㅏㄴ가요?
안 될 거 같은데... 소수점 아래 값을 배열에 넣고 노가다해야할듯?
아....
%.14f 를 문자열로 만들면 됨. "%."+num2str(x)+"f"