删除c ++中小数点后的数字(不带floor()函数)

时间:2016-03-26 19:59:43

标签: c++

我如何复制下面的代码但不使用floor()函数?我需要这样做,因为我在一个不能使用floor()函数的位置

double quickExampleee = 3.1459038585;
std::cout << std::floor(quickExamplee  * 100.) / 100. << std::endl; 

我在周围寻找答案但是找不到任何东西?无论如何,谢谢你的时间,

3 个答案:

答案 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;