永发信息网

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

答案:6  悬赏:40  手机版
解决时间 2021-03-30 05:21
在C语言中如何不四舍五入保留小数
最佳答案
((int)(2.556 * 100))/100.0
全部回答
%.2f 就可以解决了,另外c语言不是四舍五入而是直接截断,所以说不管你是2.558还是2.553 得到的都是2.55
代码:
#include
void main()
{
double a=2.556;
printf("a=%.2f\n",a);
}
#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;
}
那就用 单精度float 或 用双精度 double 就可以 有小数了
#include
void main()
{ float a=2.556;
printf("%.2f",a);
getch();
}
这样输出的结果就是 2.55了
如果你是单纯为了把这个数打印出来,那么用%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();
}
float a=2.556;
printf("%.2f\n",a);
%.2f的意思就是保留两位小数
另外,%6.2表示,整个数的宽度(包括小数点)为6位,小数部分(不包括小数点)占两位。若整个数的宽度不足六位,则左边补空格;超过六位则忽略6。
%-6.2f与上面的含义基本相同,只是当整个数的宽度不足六位时是右边补空格
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
我现在大连交养老保险,可以往老家转吗,大连的
二百毫升等于多少克?
怎样合理的施用饼肥
svmsung三星手机是多少钱
语言学问题求教 IC analysis
接吻时吐舌头是什么意思
单选题As the popular saying&nbs
请问这支英雄钢笔的型号
想自己做弹弓,木质的好还是钢铁的好
语花蝶这首歌词是什么意思
德国原装进口奔驰380马力牵引车价位多少
当在感情上很迷茫不知如何是好时还怎么办
广东烧鸭和北京烤鸭,哪个更好吃?
oppo A57用的是什么样的SIM卡?
邻居证明媳妇常年不在家能起到法律效应吗?
推荐资讯
虱子怎么长出来的
我也爱你的韩语怎么说
内衣尺码比B80(36)大一码的是多少?
K125火车 03车厢101号或102号靠窗吗?
你们说miui能搞出三星s9那种凝视拍摄吗
本店清真是什么意思
 找亲戚朋友捐卵可以吗
在厦门团购网琳琅满目,团购很便宜想购物,但
黑色婚纱寓意是什么 结婚穿黑婚纱好吗
为什么甲位于乙的东南方
为什么说中国是世界缺硒最严重的国家之一?
快克智能装备股份有限公司怎么样?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?