new_guard 发表于 2017-7-7 10:26:09

浮点型转字符串时精度丢失

本帖最后由 new_guard 于 2017-7-7 11:23 编辑


#include <iostream>
#include <fstream>
#include <string>
#include <sstream>
#include "atlstr.h"
#include <cstdio>

using namespace std;

void main()
{
        float mag = {-0.14189115,0.039332587,-0.044832617,0.83130932,0.0039432552,0.028655458};
        ofstream out;
        string temp_t;
        char buffer;

        out.open("first.txt");

        if(!out.is_open())
        {
                cerr << "打开out文件出错!\n";
                return;
        }


        for(int i = 0; i < 6; i++)
        {
                sprintf_s(buffer, "%0.*f", 10, mag);                        //此处代码重要
                temp_t = buffer;       
                cout << temp_t << "\t";                                //见下图显示结果
                out << temp_t <<" ";       
                temp_t = "";
        }

        out.close();

        return;
}


原本想保留指定位数的小数,不足位数补零,但遇到奇葩问题是乱补数,我就凌乱了......................

new_guard 发表于 2017-7-7 10:42:09

给大家分享一个不错的网站:http://asoftmurmur.com/
页: [1]
查看完整版本: 浮点型转字符串时精度丢失