问题一:
下面是一段四舍五入并且保留两位小数的代码:
#include<stdio.h>
main()
{
double a;
printf("请输入一个数:");
scanf("%lf",&a);
a=(int)(a*100+0.5);
a=a/100;
printf("经过四舍五入后的值为:%.2f",a);
}
能否将:
a=(int)(a*100+0.5);
a=a/100;
合并成一个语句
或者说为什么不能写成:
a=((int)(a*100+0.5))/100;
问题二:
下面一段代码:
#include<stdio.h>
main()
{
double a=2.336;
printf("经过四舍五入后的值为:%.2f\n",a);
}
输出的结果是2.34
如果我要将一个数保留两位小数但是不要四舍五入
就是直接把小数第三位以后的东西扔掉,有没有简单的编程方法?
1、可以的。
a = (int)(a * 100 + 0.5); // 将第三位小数加上去,通过强制类型转换,则会丢弃小数部分2、可以这样操作。
有人回答出来了,第一问可以的你看看吧
追答你的问题是为什么不能写成:
a=((int)(a*100+0.5))/100;
不能写成100, 但可以写100.0 差距很大的。
第二题 那两个的答案比较好,我这个稍微麻烦了。