头文件:#include <stdlib.h>
这三个函数都是将数字转化为字符串,简单区别如下:
1.gcvt()所转换后的字符串包含小数点或正负符号
2.ecvt()的转换结果中不包括十进制小数点
3.fcvt()的转换结果中不包括十进制小数点
!!注意在keil中没有该类函数,因此浮点数转字符串可以通过放大浮点数为整形,然后在转换为字符串的方法。
gcvt, _gcvt - 把一个浮点数转成字符串,指定要保留几位有效数字,小数方式或科学计数法,当这些位有效数字无法用小数方式表达时,会变成科学计数法 |
gcvt, _gcvt:把一个浮点数转成字符串,指定要保留几位有效数字,小数方式或科学计数法,当这些位有效数字无法用小数方式表达时,会变成科学计数法
函数原型:
char *gcvt(double value, int ndec, char *buf); |
char *_gcvt(double value, int ndec, char *buf); |
头文件:
#include <cstdlib>
命名空间:
std
参数:
value:浮点数
ndec:有效位数,超过这个位数的数据进行四舍五入,不足位数不补 '0'
buf:保存转换的结果,必须能够容纳转换结果的字符串 + 结束符
返回值:
返回值:指向 buf 的指针;
buf:转换的结果
value |
ndec |
返回值 |
说明 |
123.45678 |
5 |
123.46 |
|
10 |
5 |
10 |
|
1.25 |
5 |
1.25 |
|
-0.987654321 |
5 |
-0.98765 |
|
-0.987654321 |
8 |
-0.98765432 |
|
-0.0625 |
8 |
-0.0625 |
|
0.001 |
8 |
0.001 |
|
-0.000012345678901 |
5 |
-1.2346e-05 |
使用科学计数法表示的 -1.2346×10-5 |
1234567890 |
5 |
1.2346e+09 |
使用科学计数法表示的 1.2346×109 |
-1234567890 |
5 |
-1.2346e+09 |
使用科学计数法表示的 -1.2346×109 |
例子:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
double v = -0.000012345678901;
char buf[32];
UnicodeString s = gcvt(v, 5, buf);
Memo1->Lines->Add(L"保留 5 位有效数字:" + s);
} |
|