简短不看版: C语言中,不能进行 double a == double b 这样的运算。 另外,printf(".1f", &double) 的时候,数据输出不同时候,可能会不一样。 根本问题时float类型或者double类型的浮点数在计算机中不能精确储存。
double a;printf("请输入一个double型数据:”);a= int (a*100+0.5)/100 ;printf("%lf",a)。} 这时候printf输出的结果将是5.14。
{doublebase= pow(10, precision);returnround(data *base) /base; }
对double数据类型进行四舍五入运算,可以利用double转为整型时强制取整来做到。1 将double类型数据,强制转换为int类型,会强制截取整数部分。比如double a = 1.23;(int)a的值就是1。2 由于是强制取整,所以即使是1.9转为int后,同样是1,这与四舍五入的要求不符。所以可以转换一下算法,做(int)...
c语言的关于 : 对一个double型数据进行四舍五入运算 对double数据类型进行四舍五入运算,可以利用double转为整型时强制取整来做到。1将double类型数据,强制转换为int类型,会强制截取整数部分。比如doublea=1.23;(int)a的值就是1。2由于是强制取整,所以即使是1.9转为int
没能正确地做四舍五入是因为有效数字个数超出 double 允许范围,尾部数据不精确了。 有效数字少一点时,我的编译器(VC++ 6.0) 好像能做四舍五入。例如: #include<stdio.h> #include<stdlib.h> main(){ double a,b,c,d; a=1.12345; b=-1.12345; c=1.12344; d=-1.12344; printf("a=%.4lf b=%....
在C语言中输入一个double类型数据,将该数保留一位小数,第二位进行四舍五入,并将结果输出,这是很容易实现的,因为它自带的格式输出函数printf就可以轻松实现这一功能的:double x;scanf("%lf",&x);printf("%.2f\n",x);
它们分别是相应数量的有效位(double有53bits的有效位,float有24bits的有效位) 所能表达出的最接近80...
1 输入double类型数。2 利用取整,将第三位四舍五入。3 输出结果。注意,不可以直接以%.2lf输出,因为题目要求的是在程序中四舍五入处理,而不是仅仅输出四舍五入后的结果。代码:include <stdio.h>int main(){ double v; scanf("%lf",&v); v = (int)(v*100+0.5)/100.0;...
C语言输入一个double类型数据,要求将该数保留一位小数,第二位进行四舍五入,并将结果输出。 推荐的方法:首先将该数存入double类型的变量中,然后将该变量乘以100(小数点后移2位),加上0.5,再强制取整,最后除以100.0(小数点前移2位)即得到了结果。表达式如下(double变量