atof和stringstream产生不同的结果

时间:2015-09-10 07:15:48

标签: c++ floating-point precision stringstream atof

我一直在研究一个问题,即我将浮点数转换为人类可读格式,然后返回。即一个字符串。我使用stringstream遇到了问题,发现atof会产生“更好”的结果。

注意,在这种情况下我不打印数据,我使用调试器来检索值:

    const char *val = "73.31";
    std::stringstream ss;
    ss << val << '\0';
    float floatVal = 0.0f;
    ss >> floatVal; //VALUE IS 73.3100052

    floatVal = atof(val); //VALUE IS 73.3099976

对此可能有一个合理的解释。如果有人能够启发我,我会很高兴:)。

0 个答案:

没有答案
相关问题