输入一个实数f,和一个位数d
输出实数f,在保留d位小数下的结果,采用四舍六入五留双的近似。
f至多有30位小数。
0 <= f <= 1
1 <= d <= 8
所谓四舍六入五留双,是指如果恰好是0.5的情况,会把他近似到使得前一位是偶数。
比如近似到整数,0.4为0,0.5为0,0.50001为1,0.6为1,1.5为2,2.5为2。
收起
输入
一行一个浮点数f和一个位数d。
输出
一行一个浮点数表示答案
输入样例
0.123456789 5
输出样例
0.12346
说实话,这个题目一看吓我一跳,这么高深的题目,思路不是很明确,就尝试用printf试一下,(我对精度问题不是很清楚,抽个时间要好好了解一下),可是还要保留固定的位数啊,我又想到了setprecision,代码如下:
#include<bits/stdc++.h>
#include<iostream>
#include<cstring>
#include <algorithm>
using namespace std;
#define ll long long
ll ans[9000000];
int main()
{
ll n,m,k;double a;
cin>>a>>n;
cout<<fixed<<setprecision(n)<<a;
}
吐槽一下这题真水,再提醒我自己补了这一块