格式化浮点数时,我得到了意想不到的结果 例如,写下任何一个
float argument = 40.432;
char buff[100];
snprintf(buff, sizeof(buff), "%f", argument);
std::string result = buff;
或
std::string result = boost::str(boost::format("%" + "f")%argument);
结果的值是40.431999,而如果我设置参数40.111而不是40.432的值,结果将是40.111000,因为它被接受。 如果我设置参数40.4的值,结果将是40.400002。
现在我明白为什么会这样,我的问题是如何才能获得40.432000?