我如何复制下面的代码但不使用floor()
函数?我需要这样做,因为我在一个不能使用floor()
函数的位置
double quickExampleee = 3.1459038585;
std::cout << std::floor(quickExamplee * 100.) / 100. << std::endl;
我在周围寻找答案但是找不到任何东西?无论如何,谢谢你的时间,
答案 0 :(得分:3)
如果您不想将数字转换为int,请使用std::setprecision
怎么样,例如
std::cout << std::setprecision(0) << quickExamplee << std::endl;
所以要打印出 3.14 ,你只需将精度设置为2,就像
一样std::cout << std::setprecision(2) << quickExamplee << std::endl;
答案 1 :(得分:2)
只要双倍大于0,就可以static_cast<int>(quickExampleee * 100.)
。
答案 2 :(得分:0)
int myFloorForWhateverReason(double x) {
if (x > 0.0)
return (int)x;
else
return (int)(x - 0.5);
}
double quickExampleee = 3.1459038585;
std::cout << myFloorForWhateverReason(quickExamplee * 100.) / 100. << std::endl;