清涟呀 @ 2022-01-04 16:32:08
#include <iostream>
#include <iomanip>
#include <cmath>
using namespace std;
int main()
{
float a;
cin >> a;
if(a>0)
cout << floor(a) << endl;
else
cout << ceil(a) << endl;
return 0;
}
运行只有60分,不知道哪错了,有没有大佬看一看,感谢
by MujicaSaki @ 2022-01-04 16:37:59
long long a;
cin>>a;
cout<<a;
by MujicaSaki @ 2022-01-04 16:38:59
去掉小数部分即可
by MujicaSaki @ 2022-01-04 16:39:06
@清涟呀
by 清涟呀 @ 2022-01-04 16:44:00
@QAQ__QWQ 如果我想在源代码基础上更改需要怎么样?
by Terrible @ 2022-01-04 16:49:53
@清涟呀
用double,题目说给出一个float变量,但实际上float精度可能不够。
by 清涟呀 @ 2022-01-04 17:17:43
@Terrible 也不对
by MujicaSaki @ 2022-01-04 17:22:24
@清涟呀
double x;
cin>>x;
cout<<(long long)x;
这样差不多
by Qiaoqia @ 2022-01-04 17:36:17
@清涟呀 注意浮点数误差可能会使您输出 -0
。
如输入 -0.001
,您将输出 -0
这显然是不对的,要解决这个问题,只需将取整函数强制转换成整形即可。
cout << (long long)floor(a);
上取整同理。
by Qiaoqia @ 2022-01-04 17:41:39
更正规的强制转换写法
std::static_cast<long long>(floor(a))