wlbk.net
当前位置:首页 >> C语言四舍五入保留一位 >>

C语言四舍五入保留一位

可能下面方法有点笨.假如你要对一个数a保留到小数点后面n位 你可以这样 temp=pow(0.1,n); b=a+temp*0.5; c=b-fmod(b,temp); 上函数都在math.h中

把那个数扩大十倍,在取个位,在用IF比较.在把它缩小十倍.

输出语句可以这样写: printf("%.3f\n",a); 假设a是你要输出的变量.其中".3f"就是指限定输出3位小数,并且c语言会自动进行末位的四舍五入.

因为float 是单精度实数,精确位数只有6-7位.你用double 就可以了.还有一点..6是不需要的,小数默认输出就是6位,加.6只是多此一举

将 printf("%lf",&a);改为 printf("%.2f",a);其中 %.2f 是控制输出的语句,表示输出时小数点后保留两位数.如果计算结果的小数点后的数位大于二则四舍五入,小数点后保留两位;若计算结果小数后没有达到两位,则输出时补零,所以输出的结果小数点后仍然有两位数.而“&”用在输入输出语句中表示取地址,而且只能用在输入时,表示取你要赋值的变量的地址,从而将你所输入的值传递给你要赋值的变量,而上面用在输入时显然是错的

#include <stdio.h> main() { double a; printf("请输入一个四位小数:\n"); scanf("%lf",&a);//双精度应该是的%lf a*=100;// 扩大100倍,举个例子:a=123.4567,a=a*100,则a=12345.67 a+=0.5;//加0.5进行四舍五入a=12346.17 a=(int)a;//这个地方是想保留两位小数,后边的舍去,所以进行强制类型转换.a/=100;//上面扩大100倍,现在要对其缩小100 printf("结果是:%f\n",a);//这样就行了,或者printf("结果是:%.2f\n",a); }

意思是第3位之后的数都舍弃吗?可以这样,#include <stdio.h> int main() { double d1 = 1234.567; double d2 = d1 - (int)d1; // 求出小数部分 int i = d2 * 1000; // 取出小数后3位 if (i%10 >=5 ) { i -= i%10; i += 10; // 四舍五入 } d1 = (int)d1 + (double)i / 1000; printf("d1 = %lf \n", d1); return 0; }

先#include<math.h> 用ceil函数即可.它是一律向上取整,如ceil( 1.2) = 2 对不同位数,可这样: 如把a=0.21变0.3: b = ceil (10a)/10 与ceil相对应的还有floor函数,用法相同,向下取整.希望能帮到你.

在c语言中让一个数保留2位小数可以通过精度限定符来完成,精度限定符有一个点号后跟一个整数组成.其准确含义依赖于它所修饰的数据类型.示例如下:#include int main() { printf("%.2lf\n", 1.2345678); return 0; } c语言的主要特点:优点1

int Function(float yournum){int temp= yournum*10;int floatPart=temp%10;int intPart=temp/10;if(floatPart>=5){return intPart+1;}return intPart;}

网站首页 | 网站地图
All rights reserved Powered by www.wlbk.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com