浮点数转成字符串函数gcvt()

头文件:#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);
}
posted @ 2019-10-05 20:04  wdliming  阅读(1126)  评论(0编辑  收藏  举报