#include <cstdio>
printf("%.xf", a);
#include<iostream>
、#include<iomanip>
cout << fixed << setprecision(x) << a;
如果题目说保留 位小数,那么就按照这种方式输出就可以了。
但是需要注意的是,这种方式并不是我们直观中的四舍五入。
对于 舍和 入的部分是没有问题的,对于舍入位是 ,且后面还有大于 的数位时也是没有问题的。但如果舍入位是 且后没有其他数了,那么有可能会有两个小问题。
如果是 double
类型可以精确储存的数,那么会舍入到最接近的偶数数位,比如在保留 位小数的情况下:
保留 位小数的情况下:
如果是 double
类型无法无法精确储存的数,实际上储存的数可能会有一点点偏差,也会造成和我们所想不同。
比如如果输入 ,那么保留 位小数输出的会是 ,因为保留 位小数输出后,我们会发现实际储存的数大概是 ,执行的自然是 舍操作。