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'一樣。改變它,如果你不喜歡它。 –