C++ 使用boost::format仅打印小数点后的2位数字
我使用boost::format只打印浮点值小数点后的2位数字,在四舍五入后也是如此。是这样的C++ 使用boost::format仅打印小数点后的2位数字,c++,boost,C++,Boost,我使用boost::format只打印浮点值小数点后的2位数字,在四舍五入后也是如此。是这样的 #include <boost/format.hpp> #include <iostream> using namespace std; using namespace boost; somefunc() { format outFileFormatter("%1$.2f"); cout << outFileFormatter % val; } #
#include <boost/format.hpp>
#include <iostream>
using namespace std;
using namespace boost;
somefunc()
{
format outFileFormatter("%1$.2f");
cout << outFileFormatter % val;
}
#包括
#包括
使用名称空间std;
使用名称空间boost;
somefunc()
{
格式化输出格式化程序(“%1$.2f”);
cout您可以尝试检查小数部分是否为0.00,然后使用另一个格式化程序。但是请注意,很难用浮点值检查精确值
somefunc()
{
double intPart(0.0);
double fracturedPart(modf(val, &intPart));
if (fracturedPart == 0.0)
{
// zero formater
}
else
{
// decimal formater
}
}
请记住,只要val
类型为double
或float
,即使您分配了val=45
,您仍然有一个浮点数,而不是“整数”