新手求解答atof(),为什么输出的数只有几位#includeiostream#includestringusing namespace stdint ma
新手求解答atof(),为什么输出的数只有几位
#include<iostream>
#include<string>
using namespace std;
int main()
{char c[30],d[30];double a,b;
string s=".221122345566e+02";strcpy(c,s.c_str());
cout<<c<<endl;a=double(atof(c));cout<<a<<endl;
string s1="4375247.899768";strcpy(d,s1.c_str());
cout<<d<<endl;b=atof(d);cout<<b<<endl;
return 0;}
[解决办法]
浮点数,本来就是有误差的。当然你可以通过setprecision()函数来设置精度。
[解决办法]
cout.precison(..)//设置精度
cout<<a<<endl;
[解决办法]
C++默认的流输出数值有效位是6
[解决办法]
这个数本来小数位就是够的,只是默认输出的位数不够而已。
