c语言中 double 数值 怎么转换成 字符串?

RT。。。回1F 这貌似跟字符串没关系吧。。。
2025-04-30 06:44:36
推荐回答(4个)
回答1:

#include
#include
using namespace std;
int main()
{
string s1,s2;
double d1,d2;
int i,j;
while(cin>>d1)
{
/*初始化 清空*/
s1.clear();
s2.clear();

/*负数情况*/
if(d1<0)
{
s2+='-';
d1=-d1;
}

/*处理整数部分*/
j=i=d1;//除去小数部分
while(j>0)
{
s1+=j%10+'0';
j/=10;
}
/*获得的s1是i的倒序,所以得整序*/
for(j=s1.size()-1;j>=0;j--)
s2+=s1[j];

if(d1-i>0)//如果d1不是整数
{
s2+='.';//补上小数点
/*处理小数部分*/
d2=d1-i;//获得小数部分

/*因为是浮点型,所以结束判断不易,
使得计算结果的最后一位不准确,敬谅
!*/
while(d2>(1e-10))//d2>0.0000000001
{
d2*=10;
i=d2;
s2+=i+'0';
d2-=i;
}
}

/*输出*/
cout< }
return 0;
}

回答2:

double x=123.4567;
char sx[30];

sprintf(sx,"%lf",x);

sprintf(sx,"%30.15lf",x);

回答3:

一位一位的算,用取余%和求商/
再把每位数减'0'(0字符)

回答4:

有个sprintf函数好像能够转换