C 언어 중의 gcvt()와 ecvt()및 fcvt()함 수 를 비교 분석 하 다

gcvt()함수:
헤더 파일:\#include
정의 함수:

char *gcvt(double number, size_t ndigits, char *buf);
함수 설명:gcvt()는 인자 number 를 ASCII 코드 문자열 로 변환 하고 인자 ndigits 는 표 시 된 자릿수 를 표시 합 니 다.gcvt()와 ecvt()와 fcvt()가 다른 점 은 gcvt()가 변 환 된 문자열 에 소수점 이나 양음 기호 가 포함 되 어 있다 는 것 이다.변환 에 성공 하면 변 환 된 문자열 은 매개 변수 buf 포인터 가 가리 키 는 공간 에 놓 입 니 다.
반환 값:문자열 지침 을 되 돌려 줍 니 다.이 주 소 는 buf 지침 입 니 다.
범례

#include <stdlib.h>
main(){
  double a = 123.45;
  double b = -1234.56;
  char *ptr;
  int decpt, sign;
  gcvt(a, 5, ptr);
  printf("a value=%s
", ptr); ptr = gcvt(b, 6, ptr); printf("b value=%s
", ptr); }
실행 결과:

a value=123.45
b value=-1234.56
ecvt()함수:
기능:쌍 정밀도 부동 소수점 형 수 를 문자열 로 변환 합 니 다.변환 결과 에는 10 진 소수점 이 포함 되 지 않 습 니 다.
사용법:

char *Ecvt(double value, int ndigit, int *decpt, int *sign);
상세 설명:Ecvt 함수 가 두 정밀도 부동 소수점 을 문자열 로 변환 합 니 다.value 매개 변 수 는 변환 할 부동 소수점 입 니 다.이 함 수 는 최대 ndigit 개의 숫자 값 을 문자열 로 저장 하고 빈 숫자 문자('\0')를 추가 합 니 다.value 의 숫자 개수 가 ndigit 를 초과 하면 낮은 숫자 가 반올림 됩 니 다.ndigit 숫자 보다 적 으 면 이 문자열 은 0 으로 채 웁 니 다.
숫자 만 이 문자열 에 저 장 됩 니 다.소수점 위치 와 value 기 호 는 호출 된 후에 decpt 과 sign 에서 가 져 옵 니 다.decpt 매개 변 수 는 소수점 위 치 를 보 여 주 는 정수 치 를 지적 합 니 다.이 문자열 의 시작 위치 에서 계산 합 니 다.0 또는 음 수 는 소수점 이 첫 번 째 숫자의 왼쪽 에 있다 는 것 을 가리킨다.sign 매개 변 수 는 변 환 된 수 를 가리 키 는 기호의 정 수 를 가리킨다.만약 이 정수 가 0 이 라면,이 수 는 양수 이 고,그렇지 않 으 면 마이너스 이다.
인자:
  • value:전환 을 기다 리 는 이중 정밀도 부동 소수점
  • 4.567917.ndigit:저 장 된 유효한 숫자 자릿수
  • *decpt:저 장 된 소수점 위치.
  • *sign:변 환 된 수의 기호.
  • 반환 값:
  • char*:생 성 된 문자열 을 가리킨다
  • 비고:이 함수 의 헤더 파일 은"stdlib.h"입 니 다.
    fcvt()함수
    함수 명:fcvt
    공적.   네:부동 소수점 을 문자열 로 변환 합 니 다.
    헤더 파일:
    
    #include <stdlib.h>
    
    원래   유형:
    
    *fcvt(double value, int ndigit, int *decpt, int *sign);
    
    매개 변수 설명:value 는 변환 할 부동 소수점 입 니 다.ndigit 는 소수점 뒤의 자리 입 니 다.*decpt 는 소수점 의 위 치 를 표시 합 니 다.*sign 은 기 호 를 나타 내 고 0 은 양수 이 며 1 은 마이너스 이다.
    인 스 턴 스 코드:
    
    #include <stdlib.h>
    #include <stdio.h>
    #include <conio.h>
      
    int main(void)
    {
      char *string;
      double value;
      int dec, sign;
      int ndig = 10;
      //clrscr();
      value = 9.876;
      string = fcvt(value, ndig, &dec, &sign);
      printf("string = %s dec = %d sign = %d
    ", string, dec, sign); value = -123.45; ndig= 15; string = fcvt(value,ndig,&dec,&sign); printf("string = %s dec = %d sign = %d
    ", string, dec, sign); value = 0.6789e5; /* scientific notation */ ndig = 5; string = fcvt(value,ndig,&dec,&sign); printf("string = %s dec = %d sign = %d
    ", string, dec, sign); return 0; }
    출력 결 과 는 다음 과 같 습 니 다.

    좋은 웹페이지 즐겨찾기