60分求助

B2016 浮点数向零舍入

raoweihua @ 2024-11-09 17:20:08

#include<bits/stdc++.h>
using namespace std;
long long x;
int main(){
    cin>>x;
    if(x==0){cout<<0;}
    else if(x<0){cout<<ceil(x);}
    else{cout<<floor(x);}
}

哪位大佬帮我看一下?谢谢!


by hyx761 @ 2024-11-09 17:36:50

@raoweihua 你这个代码里面的ceil()floor()函数的返回值都是double类型的,如果不加精度的话就会有科学计数法

所以要用<iomanip>下的fixedsetprecision(0)来取消科学计数法

AC code:

#include<bits/stdc++.h>
using namespace std;
long long x;
int main(){
    cin>>x;
    if(x==0){cout<<0;}
    else if(x<0){cout<<fixed<<setprecision(0)<<ceil(x);}
    else{cout<<fixed<<setprecision(0)<<floor(x);}
}

求关


by raoweihua @ 2024-11-09 18:28:09

@die_With_Glory 好的,谢谢大佬的指导!


by weiyuchen4510 @ 2024-11-11 13:02:14

@raoweihua

#include<bits/stdc++.h>
using namespace std;
int main()
{
    long long a;
    cin>>a;
    cout<<a;
    return 0;
}

...AC


by raoweihua @ 2024-11-11 20:49:47

@weiyuchen4510 谢谢


by lcy20100722 @ 2024-11-23 14:17:41

@weiyuchen4510 这怎么AC的...... 123456.77=123456


by weiyuchen4510 @ 2024-11-24 12:25:36

@lcy20100722不知道


|