格式化时丢失浮点数

时间:2018-05-30 17:09:28

标签: c++ boost formatting format

格式化浮点数时,我得到了意想不到的结果 例如,写下任何一个

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?

0 个答案:

没有答案