C++:如何将double型转换成字符串

Python019

C++:如何将double型转换成字符串,第1张

c语言就有现成的函数

char

*ecvt(double

value,int

ndigit,int

*decpt,int

*sign)

将浮点数value转换成字符串并返回该字符串

char

*fcvt(double

value,int

ndigit,int

*decpt,int

*sign)

将浮点数value转换成字符串并返回该字符串

函数名:

ecvt

能:

把一个浮点数转换为字符串

法:

char

ecvt(double

value,

int

ndigit,

int

*decpt,

int

*sign)

程序例:

#include

#include

#include

int

main(void)

{

char

*string

double

value

int

dec,

sign

int

ndig

=

10

clrscr()

value

=

9.876

string

=

ecvt(value,

ndig,

&dec,

&sign)

printf("string

=

%s

dec

=

%d

\

sign

=

%d\n",

string,

dec,

sign)

value

=

-123.45

ndig=

15

string

=

ecvt(value,ndig,&dec,&sign)

printf("string

=

%s

dec

=

%d

sign

=

%d\n",

string,

dec,

sign)

value

=

0.6789e5

/*

scientific

notation

*/

ndig

=

5

string

=

ecvt(value,ndig,&dec,&sign)

printf("string

=

%s

dec

=

%d\

sign

=

%d\n",

string,

dec,

sign)

return

0

}

函数名:

fcvt

能:

把一个浮点数转换为字符串

法:

char

*fcvt(double

value,

int

ndigit,

int

*decpt,

int

*sign)

程序例:

#include

#include

#include

int

main(void)

{

char

*string

double

value

int

dec,

sign

int

ndig

=

10

clrscr()

value

=

9.876

string

=

ecvt(value,

ndig,

&dec,

&sign)

printf("string

=

%s

dec

=

%d

\

sign

=

%d\n",

string,

dec,

sign)

value

=

-123.45

ndig=

15

string

=

ecvt(value,ndig,&dec,&sign)

printf("string

=

%s

dec

=

%d

sign

=

%d\n",

string,

dec,

sign)

value

=

0.6789e5

/*

scientific

notation

*/

ndig

=

5

string

=

ecvt(value,ndig,&dec,&sign)

printf("string

=

%s

dec

=

%d\

sign

=

%d\n",

string,

dec,

sign)

return

0

}

在Windows系统下的转换方法

windows下进行此类一般使用sprintf_s函数,使用该函数需要包含头文件stdio.h。

示例:例如我要将 1.234567 这个小数转化为字符串"1.234567“。首先,要包含头文件 cstdio(即 stdio.h)。

接着,要定义一个字符缓冲区 buffer,大小要足以容纳要转换的 double 变量。

再使用sprinf_s进行转换,转换的字符串保存在buffer中。

这时,就可以用string类型变量str来接收值了。

为了验证结果,我们加句代码输出这个str的值,程序运行的结果如下图。