P74. 【例14.2】 四舍六入五留双

https://ok.hn.cn/p/P74

说明

输入一个实数\(f\)和一个整数\(d\)

输出实数\(f\),在保留\(d\)位小数下的结果,采用四舍六入五留双的近似。

\(f\)至多有\(30\)位小数。

\(0 \le f \le 1\)

\(1 \le d \le 8\)

所谓四舍六入五留双,是指如果恰好是\(0.5\)的情况,会把它近似到使得前一位是偶数。

比如近似到整数,\(0.4\)\(0\)\(0.5\)\(0\)\(0.50001\)\(1\)\(0.6\)\(1\)\(1.5\)\(2\)\(2.5\)\(2\)

输入格式

一行一个浮点数f和一个整数\(d\)

输出格式

一行一个浮点数表示答案。

题解

format()形式可针对利用变量x指定保留位数时,用format()形式

f,x=input().split()  
f=float(f)  
x=int(x)  
  
# print(round(f,d)) # ac 17 err 3  
  
print("%.{}f".format(x) % f)# 题解  
  

c++ 中直接使用
cout<<fixed<<setprecision(n)<<a;
中可以指定 n 来限制位数