头文件:#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); } |
|