1
这里:lexical_cast strtof strtold失去准确性?
#include <iostream>
#include <cstdlib>
#include <boost/lexical_cast.hpp>
int main(void) {
const char * str = "277499.84";
std::cout << boost::lexical_cast<double>(str) << std::endl;
std::cout << strtof(str, NULL) << std::endl;
std::cout << strtold(str, NULL) << std::endl;
std::cout << atof(str) << std::endl;
return 0;
}
输出:
277500
277500
277500
277500
为什么输出不277499.84?
默认的精度是6我想,就像'printf'的'%f'一样。改变它,如果你不喜欢它。 –