永发信息网

在C语言中如何不四舍五入保留小数

答案:6  悬赏:40  手机版
解决时间 2021-03-30 05:21
  • 提问者网友:
  • 2021-03-29 23:55
在C语言中如何不四舍五入保留小数
最佳答案
  • 五星知识达人网友:杯酒困英雄
  • 2021-03-30 00:20
((int)(2.556 * 100))/100.0
全部回答
  • 1楼网友:空山清雨
  • 2021-03-30 03:34
%.2f 就可以解决了,另外c语言不是四舍五入而是直接截断,所以说不管你是2.558还是2.553 得到的都是2.55
代码:
#include
void main()
{
double a=2.556;
printf("a=%.2f\n",a);
}
  • 2楼网友:低血压的长颈鹿
  • 2021-03-30 03:04
#include
main()
{
float xs(float,int);
float i,result;
printf("input i: ");
scanf("%f",&i);
result=xs(i,2);
printf("result=%.2f",result);
}
float xs(float a,int b)
{
int i,j=1;
float ans;
for(i=1;i<=b;i++)
j*=10;
ans=(int)(a*j)*1.0/j;
return ans;
}
  • 3楼网友:狂恋
  • 2021-03-30 02:10
那就用 单精度float 或 用双精度 double 就可以 有小数了
#include
void main()
{ float a=2.556;
printf("%.2f",a);
getch();
}
这样输出的结果就是 2.55了
  • 4楼网友:天凉才是好个秋
  • 2021-03-30 01:41
如果你是单纯为了把这个数打印出来,那么用%2f就可以了。
但是如果你要在程序中做运算的时候希望能够不四舍五入地保留小数,
那下面的方法可以做到。
#include
main()
{
int k = 3;
double number = 655.12345;
number = (int)(number) +
((int)((number-(int)(number))*pow(10.0,k)))/pow(10.0,k);
printf("%f\n",number);
getch();
}
  • 5楼网友:行雁书
  • 2021-03-30 01:32
float a=2.556;
printf("%.2f\n",a);
%.2f的意思就是保留两位小数
另外,%6.2表示,整个数的宽度(包括小数点)为6位,小数部分(不包括小数点)占两位。若整个数的宽度不足六位,则左边补空格;超过六位则忽略6。
%-6.2f与上面的含义基本相同,只是当整个数的宽度不足六位时是右边补空格
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯