程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> 比較剖析C說話中的gcvt()和ecvt()和fcvt()函數

比較剖析C說話中的gcvt()和ecvt()和fcvt()函數

編輯:關於C++

比較剖析C說話中的gcvt()和ecvt()和fcvt()函數。本站提示廣大學習愛好者:(比較剖析C說話中的gcvt()和ecvt()和fcvt()函數)文章只能為提供參考,不一定能成為您想要的結果。以下是比較剖析C說話中的gcvt()和ecvt()和fcvt()函數正文


gcvt()函數:
頭文件:#include <stdlib.h>

界說函數:

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\n", ptr);
  ptr = gcvt(b, 6, ptr);
  printf("b value=%s\n", ptr);
}

履行成果:

a value=123.45
b value=-1234.56

ecvt()函數:

  功 能:將雙精度浮點型數轉換為字符串,轉換成果中不包含十進制小數點。

  用 法:

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:待轉換的雙精度浮點數。
  •   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\n", string, dec, sign);
  value = -123.45;
  ndig= 15;
  string = fcvt(value,ndig,&dec,&sign);
  printf("string = %s dec = %d sign = %d\n", string, dec, sign);
  value = 0.6789e5; /* scientific notation */
  ndig = 5;
  string = fcvt(value,ndig,&dec,&sign);
  printf("string = %s dec = %d sign = %d\n", string, dec, sign);
  return 0;
}

輸入成果以下:

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved