我遇到了麻烦。
我正在尝试将此4.66667
的双倍数转换为4.6
。我知道可以用cout.precision
函数完成,但我需要转换它,而不是打印。
整个想法是我需要进行一些操作,如8/5
,然后在逗号后面删除数字,只留下4.6
,将其放入新变量并请求用户准确地说4.6
。
如果您有任何想法,非常感谢。
答案 0 :(得分:0)
你可以使用一个技巧:
float rounded_down = floorf(val * 10) / 10;
(10是保持1个小数,100是保持2个......)
答案 1 :(得分:0)
我有一个我为此写的功能。该函数需要双倍但如果你需要使用大于双精度的东西,你可以改变它。
double floorRound(double val, int places)
{
return std::floor(val * std::pow(10.0, places)) / std::pow(10.0, places);
}