📄 efgcvt.c
字号:
/*FUNCTION<<ecvt>>,<<ecvtf>>,<<fcvt>>,<<fcvtf>>---double or float to stringINDEX ecvtINDEX fcvtANSI_SYNOPSIS #include <stdlib.h> char *ecvt(double <[val]>, int <[chars]>, int *<[decpt]>, int *<[sgn]>); char *ecvtf(float <[val]>, int <[chars]>, int *<[decpt]>, int *<[sgn]>); char *fcvt(double <[val]>, int <[decimals]>, int *<[decpt]>, int *<[sgn]>); char *fcvtf(float <[val]>, int <[decimals]>, int *<[decpt]>, int *<[sgn]>);TRAD_SYNOPSIS #include <stdlib.h> char *ecvt(<[val]>, <[chars]>, <[decpt]>, <[sgn]>); double <[val]>; int <[chars]>; int *<[decpt]>; int *<[sgn]>; char *ecvtf(<[val]>, <[chars]>, <[decpt]>, <[sgn]>); float <[val]>; int <[chars]>; int *<[decpt]>; int *<[sgn]>; char *fcvt(<[val]>, <[decimals]>, <[decpt]>, <[sgn]>); double <[val]>; int <[decimals]>; int *<[decpt]>; int *<[sgn]>; char *fcvtf(<[val]>, <[decimals]>, <[decpt]>, <[sgn]>); float <[val]>; int <[decimals]>; int *<[decpt]>; int *<[sgn]>;DESCRIPTION<<ecvt>> and <<fcvt>> produce (null-terminated) strings of digitsrepresentating the <<double>> number <[val]>.<<ecvtf>> and <<fcvtf>> produce the corresponding characterrepresentations of <<float>> numbers.(The <<stdlib>> functions <<ecvtbuf>> and <<fcvtbuf>> are reentrantversions of <<ecvt>> and <<fcvt>>.)The only difference between <<ecvt>> and <<fcvt>> is theinterpretation of the second argument (<[chars]> or <[decimals]>).For <<ecvt>>, the second argument <[chars]> specifies the total numberof characters to write (which is also the number of significant digitsin the formatted string, since these two functions write only digits).For <<fcvt>>, the second argument <[decimals]> specifies the number ofcharacters to write after the decimal point; all digits for the integerpart of <[val]> are always included.Since <<ecvt>> and <<fcvt>> write only digits in the output string,they record the location of the decimal point in <<*<[decpt]>>>, andthe sign of the number in <<*<[sgn]>>>. After formatting a number,<<*<[decpt]>>> contains the number of digits to the left of thedecimal point. <<*<[sgn]>>> contains <<0>> if the number is positive,and <<1>> if it is negative.RETURNSAll four functions return a pointer to the new string containing acharacter representation of <[val]>.PORTABILITYNone of these functions are ANSI C.Supporting OS subroutines required: <<close>>, <<fstat>>, <<isatty>>,<<lseek>>, <<read>>, <<sbrk>>, <<write>>.NEWPAGEFUNCTION<<gvcvt>>, <<gcvtf>>---format double or float as stringINDEX gcvtINDEX gcvtfANSI_SYNOPSIS #include <stdlib.h> char *gcvt(double <[val]>, int <[precision]>, char *<[buf]>); char *gcvtf(float <[val]>, int <[precision]>, char *<[buf]>);TRAD_SYNOPSIS #include <stdlib.h> char *gcvt(<[val]>, <[precision]>, <[buf]>); double <[val]>; int <[precision]>; char *<[buf]>; char *gcvtf(<[val]>, <[precision]>, <[buf]>); float <[val]>; int <[precision]>; char *<[buf]>;DESCRIPTION<<gcvt>> writes a fully formatted number as a null-terminatedstring in the buffer <<*<[buf]>>>. <<gdvtf>> produces correspondingcharacter representations of <<float>> numbers.<<gcvt>> uses the same rules as the <<printf>> format`<<%.<[precision]>g>>'---only negative values are signed (with`<<->>'), and either exponential or ordinary decimal-fraction formatis chosen depending on the number of significant digits (specified by<[precision]>).RETURNSThe result is a pointer to the formatted representation of <[val]>(the same as the argument <[buf]>).PORTABILITYNeither function is ANSI C.Supporting OS subroutines required: <<close>>, <<fstat>>, <<isatty>>,<<lseek>>, <<read>>, <<sbrk>>, <<write>>.*/#include <_ansi.h>#include <reent.h>#include <stdio.h>#include <stdlib.h>#include "local.h"char *_DEFUN (fcvt, (d, ndigit, decpt, sign), double d _AND int ndigit _AND int *decpt _AND int *sign){ return fcvtbuf (d, ndigit, decpt, sign, NULL);}char *_DEFUN (fcvtf, (d, ndigit, decpt, sign), float d _AND int ndigit _AND int *decpt _AND int *sign){ return fcvt ((float) d, ndigit, decpt, sign);}char *_DEFUN (gcvtf, (d, ndigit, buf), float d _AND int ndigit _AND char *buf){ double asd = d; return gcvt (asd, ndigit, buf);}char *_DEFUN (ecvt, (d, ndigit, decpt, sign), double d _AND int ndigit _AND int *decpt _AND int *sign){ return ecvtbuf (d, ndigit, decpt, sign, NULL);}char *_DEFUN (ecvtf, (d, ndigit, decpt, sign), float d _AND int ndigit _AND int *decpt _AND int *sign){ return ecvt ((double) d, ndigit, decpt, sign);}char *_DEFUN (gcvt, (d, ndigit, buf), double d _AND int ndigit _AND char *buf){ return _gcvt (_REENT, d, ndigit, buf, 'g', 0);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -