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 来限制位数