1.有两个问题想请教一下
1.1第一个问题
在写程序时有四舍五入的条件,自己编写的时候发现了一个float数据类型的不同之处。
e.g
#include <stdio.h>
int main()
{
double S;
S=0;
scanf("%lf",&S);
printf("%.0f",S);
return 0;
}
输入2.5会自动四舍五入成3,但是在最后输出的部分改成printf("%.1f",S);时,输入2.55输出就是2.5,如果是2.551输出就是2.6。
请问这里为什么会发生这种情况。
1.2第二个问题
有点伸手党的感觉,但我找了很久网上资料也没找到。
想写一个程序,能根据输入的数据,用户的需求来进行不同位数的四舍五入。
比如输入2.5678,再输入自己想要进行的四舍五入需求进行处理。如果是小数点后3位四舍五入,输出就是2.568,如果是小数点后2位四舍五入,输出就是2.57。请问应该怎么编写?