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されないのはなぜ?
デフォルト精度は 'printf'の'%f'と同じです。それが気に入らなければ変更してください。 –