gcvt是把浮點數轉換成字元串,同時返回一個指向字元串的存儲位置的指針的函式。
基本介紹
- 中文名:gcvt
- 包含頭檔案:<stdlib.h>
- 函式名:gcvt
- 參數value:被轉換的值
簡介,程式例,
簡介
函式名: gcvt
用 法: char *gcvt(double value, int ndigit, char *buf);
包含頭檔案:<stdlib.h>
參數
value——被轉換的值。
Digits——存儲的有效數字位數。
Buffe——結果的存儲位置。
返回一個指向結果的存儲位置的指針
說明
gcvt函式把一個浮點值轉換成一個字元串(包括一個小數點和可能的符號位元組)並存儲該字元串在buffer中。該buffer應足夠大以便容納轉換的值加上結尾的空字元('\0'),它是自動添加的。如果一個緩衝區的尺寸為digits的尺寸+1,該函式覆蓋該緩衝區的末尾。這是因為轉換的字元串包括一個小數點以及可能包含符號和指數信息。不提供上溢出。gcvt試圖以十進制格式產生digits數字,如果不可能,它以指數格式產生digits數字,在轉換時可能截除尾部的0。
程式例
#include <stdlib.h>#include <stdio.h>int main(void){ char str[25]; double num; int sig = 5; /* significant digits */ /* a regular number */ num = 9.876; gcvt(num, sig, str); printf("string = %s\n", str); /* a negative number */ num = -123.4567; gcvt(num, sig, str); printf("string = %s\n", str); /* scientific notation */ num = 0.678e5; gcvt(num, sig, str); printf("string = %s\n", str); return(0);}例2:#include <stdlib.h>#include <stdio.h>#include <string.h>int main(){ char buffer[_CVTBUFSIZE]; double value = 123456.789; printf("The following numbers were converted by _gcvt:\n"); _gcvt(value, 6, buffer); // C4996 // Note: _gcvt is deprecated; consider using _gcvt_s instead printf("buffer: '%s' (%d chars)\n", buffer, strlen(buffer)); _gcvt(value *= 10, 6, buffer); // C4996 printf("buffer: '%s' (%d chars)\n", buffer, strlen(buffer)); _gcvt(value *= 10, 6, buffer); // C4996 printf("buffer: '%s' (%d chars)\n", buffer, strlen(buffer)); printf("\n"); _gcvt(value /= 100, 6, buffer); // C4996 printf("buffer: '%s' (%d chars)\n", buffer, strlen(buffer)); _gcvt(value /= 10000, 6, buffer); // C4996 printf("buffer: '%s' (%d chars)\n", buffer, strlen(buffer)); _gcvt(value /= 10000, 6, buffer); // C4996 printf("buffer: '%s' (%d chars)\n", buffer, strlen(buffer)); return 0;}程式結果:The following numbers were converted by _gcvt:buffer: '123457' (6 chars)buffer: '1.23457e+006' (12 chars)buffer: '1.23457e+007' (12 chars)buffer: '123457' (6 chars)buffer: '12.3457' (7 chars)buffer: '1.23457e-003' (12 chars)