#include<iostream>
#include<cmath>
int main()
{
long X;
std::cin >> X;
long f = ceil(X);
std::cout << f;
}
我正在使用gcc编译器(版本5.4.0)而不是四舍五入(ceil应该做什么,它会回答问题) 输入: 10.42 输出: 10(预期11)
答案 0 :(得分:3)
long
数据类型是不可或缺的;它不能存储分数组件。第std::cin >> X
行在ceil
看到该值之前截断小数部分。也就是说,当你调用ceil
时,你传递的是10,而不是10.42。
将long X;
更改为double X;
(或float X;
)。
在使用浮点类型(float
和double
)之前,请阅读the floating point guide。