如何让C语言不出现4舍5入 我菜鸟…
#includestdio.h
int
main(void)
{
int
a,b,c,d;
printf(“请输入你的一圆
五角
一角的数值:\n”);
scanf(“%d
%d
%d”,a,b,c);
d=(a+b*0.5+c*0.1)/10;
printf(“可以兑换的10元数量为:%d\n”,d);
return
0;
}
在C语言中如何不四舍五入保留小数
float a=2.556;printf(“%.2f\n”,a);%.2f的意思就是保留两位小数另外,%6.2表示,整个数的宽度(包括小数点)为6位,小数部分(不包括小数点)占两位.若整个数的宽度不足六位,则左边补空格;超过六位则忽略6.%-6.2f与上面的含义基本相同,只是当整个数的宽度不足六位时是右边补空格
C语言中如何将一个小数取整,不四舍五入?
有差别,第一个不会做四舍五入的,它精确的进行了计算,第二个是正确的,进行了舍运算,这个运算是在(int)的时候利用类型转换做的
如果你输出的结果是一样的,我怀疑是你在输出的时候指定了输出精度,你检查一下你的printf或者cout
c语言里用%f输出时能否避免四舍五入?
单纯用%f无法避免四舍五入。要避免四舍五入,需要自行编写函数。
实现方法有很多种,以常用两种举例说明:
1、
利用取整时,强制截取整数部分,取出要输出的整数部分和小数部分。
如保留三位小数,可以写作如下代码:
double v=123.456789;//要输出的数。
int a,b;//整数部分和小数部分。
a=(int)v;//取整,得到整数部分。
b=(int)((v-a)*1000);//得到三位小数部分。
printf(“%d.%03d\n”, a, b);//分别输出小数部分和整数部分。
2、先输出到字符串,然后截取需要长度的小数部分,并输出。与上例相同功能的代码如下:
double v=123.456789;//要输出的数。
int i;//用作计数。
char s[100];//字符串缓存。
sprintf(s, “%lf”, v);//将v存到字符串中,执行后s=”123.456789″。
for(i = 0; s[i]!=’\0′; i ++)
if(s[i] == ‘.’) break;//通过循环,找到小数点的位置。
s[i+4] = ‘\0’; //将小数点后第4位赋值为结束符,这样就实际保留了三位小数。此时s=”123.456″
printf(“%s\n”,s);//输出结果。