读书人

C++中将从资料中读取的字符串转为doub

发布时间: 2012-09-23 10:28:11 作者: rapoo

C++中将从文件中读取的字符串转为double类型?

C/C++ code
       ifstream fin;     fin.open("vertex.txt");    char *p1=new char[255];    char *p2=new char[255];    char *p3=new char[255];    while(true)    {        fin.getline(p1,255,'\n');        fin.getline(p2,255,'\n');        fin.getline(p3,255,'\n');        double xnum=atof(p2);            double ynum=atof(p3);       }其中获取的p2为:113.177230145951p3为:23.4761739216854用atof函数转换的时候p2的转换时正确的113.17723014595100,p3转换就出问题了,变为23.476173921685401,最后一位变为1??这个是哪里的问题,要怎么改??


[解决办法]
把浮点数是一个数列上的离散点

你给出任何一个实数,计算机尝试着把这个实数映射到数列上最接近它的那个点

最接近实数23.4761739216854的那个点,就是浮点数23.476173921685401了

而实数113.177230145951刚好能映射到一个113.17723014595100的浮点数上
[解决办法]
探讨最后两位是在用atof转换的时候自己添加的,我希望最后不要多那两位就可以了!!这要怎么转换??

读书人网 >C++

热点推荐