应该改为print("% .1 f",x),——(1的前面有个小数点)表示输出精确到小数点后1位。如果实际数字不足1位,则在末尾补0,若大于1位,则按四舍五入取前一位。具体实现方法见下例:float x = 3.1415926;printf("%.1f", x); // 输出结果为3.1。
通常能精确到小数点后面5,6位,也就是说超过5,6位了可能就不准了。
printf("%7.3f",100/3.0);表示结果占七位,小数部分占3位,这样就可以了,并且小数点后第三位是四舍五入的结果。例如:C语言中浮点数输出精确到两位小数的语句如下:double a=2.0;printf ("%.2f", a);//其中.2指明两位小数 说明:如%9.2f 表示输出场宽为9的浮点数, 其中小数位为2, ...
可以在输出时,指定小数点后的有效位数,实现精确到若干位的效果。要精确到小数点后若干位,则数据类型为浮点型,可能为单精度(float)或双精度(double)。在C语言中,使用格式化输出函数printf来实现输出。输出格式为 .NF 1 %为格式化字符串的引导字符。2 .N表示指定显示N位小数。3 F为类型字符,对于...
c语言中double和float的精度并不是按小数点后面多少位来算的 而是按有效数字来算 比如如果是精度为2个有效数字 0.21就是精确的 但是11.1小数点后面的都是不精确的 以下是单双精度的精确位 float 6-7 double 15-16
doublex;x=(int)(x+0.5);2、举例:若正数要依舍去法精确到小数点後第二位;例如6.2367_>(int)(623.67)/100.0=623/100.0=6.23 doublex;x=(int)(x*100)/100.0;//注意是除以100.0;3、举例:若正数要四舍五入精确到小数点後第二位,即x*100四舍五入再除以100;x=(int)(x*...
把scanf("%15.10f",&x);应该改成scanf("%15lf",&x);这样就好了。代码中x是double型的,在输入数据的时候是不允许使用%f的,double型的数据输入必须使用%lf 还有,scanf("%15.10f",&x);15.10这个是不允许出现的,在数据输入的时候只能指定输入数据的总长度,不能指定小数点后的长度。
输出结果可靠数据是前6位,即,3.12345 float f = 123456.789 printf("%.2f",f);因为要求输出结果保留两位,所以输出结果小数点后会有两位,但是!这两位小数保留的毫无意义,因为它不可靠,可靠的6位有效数字已经被整数部分的123456占完了。根据以上,楼主可以自行给 f 赋各种不同值,多次调整整数...
doublex;x=(int)(x+0.5);2、举例:若正数要依舍去法精确到小数点後第二位;例如6.2367–>(int)(623.67)/100.0=623/100.0=6.23 doublex;x=(int)(x*100)/100.0;//注意是除以100.0;3、举例:若正数要四舍五入精确到小数点後第二位,即x*100四舍五入再除以100;x=(int)(x*...
C语言里面,默认%f是小数点后6位,如果想小数点后面16位,写成%.16lf,不会自动四舍五入的,double是一个近似值,通常没有办法做的很精确。通常能精确到小数点后面5,6位,也就是说超过5,6位了可能就不准了。1、double f = 111231.5585; BigDecimal b = new BigDecimal(f); double f1 = ...