2012-02-22 9 views
-1

부호 (+ 또는 -), 지수 및 유효 숫자 (y.yyyyyy)를 3 개 입력해야합니다. 이제는이 세 부분을 사용하여 부동 소수점 숫자를 만들어야합니다. 이 프로그램은 정규화되고 비정규 화 된 속성을 처리해야하지만 무한과 특수한 경우 개념을 무시해야합니다. 나는이 프로그램에 대해 어떻게 해야할지 모르겠다. 만약 어떤 사람이 나를 기쁘게 할만큼 관대하다면. PS- 나는 C 언어를 프로그래밍 언어로 사용하는 것에 익숙하지 않아, 몇 번이나 사용했습니다.c를 사용하여 부동 소수점 숫자 만들기

+7

StackOverflow의 당신을 위해 당신의 코드를 작성 기계되지 않습니다 :

당신이 뭔가를 할 수 있습니다. C에 익숙하지 않다면 시작할 수있는 좋은 방법이 아닌 것 같습니다. –

답변

1

당신이 좋아하는 뭔가 소수점 숫자를 그런 식으로 부동 구축 할 수 있습니다 : (문자열에서) 부동 소수점 값으로 유효 숫자를 얻으려면

char sign = '-'; 
int exponent = -3; 
double significand = 27.5; 

double value = significand * pow (10, exponent); 
if (sign == '-') value = -value; 

는, 당신은 10의 멱수 곱셈을 repated 사용할 수 있습니다.

그러나 C를 사용하고 있기 때문에 atof을 살펴 보는 것이 어떨까요?

char *sign = "-"; 
char *exponent = "-3"; 
char *significand = "27.5"; 

char buffer[100]; 
sprintf (buff, "%s%sE%s", sign, significand, exponent); 
double value = atof (buffer); 
+0

감사합니다 @ paxdiablo 나는 당신이 % s $ sE % s을 할 수 있도록 사용할 수 없다고 언급하는 것을 잊어 버렸습니다. – Raj

+0

'atof'는'math.h'가 아니라'stdlib.h'에 있습니다. 'sprintf' (새로운 형식의 수정 된 형식)는 "atof"가 사용할 수있는 세 가지 구성 요소, "-27.5E-3"과 같은 문자열을 만듭니다. – paxdiablo