c语言中 double 数值 怎么转换成 字符串?
发布网友
发布时间:2023-07-26 11:12
我来回答
共4个回答
热心网友
时间:2023-08-02 10:22
#include<iostream>
#include<string>
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<<s2<<endl;
}
return 0;
}
热心网友
时间:2023-08-02 10:22
double x=123.4567;
char sx[30];
sprintf(sx,"%lf",x);
或
sprintf(sx,"%30.15lf",x);
热心网友
时间:2023-08-02 10:23
一位一位的算,用取余%和求商/
再把每位数减'0'(0字符)
热心网友
时间:2023-08-02 10:23
有个sprintf函数好像能够转换