单纯用%f无法避免四舍五入。要避免四舍五入,需要自行编写函数,可以参考下面的方法:
利用取整时,强制截取整数部分,取出要输出的整数部分和小数部分。如保留三位小数,可以写作如下代码:
doublev=123.456789;//要输出的数。
inta,b;//整数部分和小数部分。
a=(int)v;//取整,得到整数部分。
b=(int)((v-a)*1000);//得到三位小数部分。
printf("%d.%03d\n",a,b);//分别输出小数部分和整数部分。
扩展资料:
printf()函数是格式化输出函数, 一般用于向标准输出设备按规定格式输出信息。在编写程序时经常会用到此函数。函数的原型为:
int printf(const char *format, ...);
函数返回值为整型。若成功则返回输出的字符数,输出出错则返回负值。
printf()函数的调用格式为:
printf("<格式化字符串>", <参量表>);
其中格式化字符串包括两部分内容: 一部分是正常字符,这些字符将按原样输出:另一部分是格式化规定字符。
参考资料来源:百度百科-printf()
c语言里用%f输出时能否避免四舍五入?
单纯用%f无法避免四舍五入。要避免四舍五入,需要自行编写函数。实现方法有很多种,以常用两种举例说明:1、利用取整时,强制截取整数部分,取出要输出的整数部分和小数部分。如保留三位小数,可以写作如下代码:double v=123.456789;\/\/要输出的数。int a,b;\/\/整数部分和小数部分。a=(int)v;\/\/取整...
c语言里用%f输出时能否避免四舍五入?
单纯用%f无法避免四舍五入。要避免四舍五入,需要自行编写函数,可以参考下面的方法:利用取整时,强制截取整数部分,取出要输出的整数部分和小数部分。如保留三位小数,可以写作如下代码:doublev=123.456789;\/\/要输出的数。inta,b;\/\/整数部分和小数部分。a=(int)v;\/\/取整,得到整数部分。b=(int)(...
c语言%f输出float型数据的四舍五入问题
(C语言会出现意外的内存访问,这点很不好)也就是说 这不是什么四舍五入,而是将后面的内存单元变成了两位数而已 以你题目中的情况,还是用%.4f限定4位小数比较好
c语言中% f保留几位小数?
c语言里面,默认%f是小数点后6位,如果想小数点后面16位,写成%16lf不会自动四舍五入的,double是一个近似值,通常没有办法做的很精确,通常能精确到小数点后面6位,也就是说超过6位可能就不准了。printf("%.2f",a); 保留小数点后两位:要保留1位小数点:printf("%.1f",a)。要保留2位小数...
c语言中*%2.2f*\\n 新人不明白麻烦来个详细过程和讲解谢谢
2.2f*\\n 号原样输出 开始是格式控制 2.2f表示以浮点数输出,保留两位小数,整数部分也是两位 最后的*原样输出 结果是*56.67 注意:单纯使用%f是不可以避免四舍五入的。所以结果最后一位变成7
C语言问题的输出问题
当以%f格式输出时,能够保证准确的数据是68.76530,多余的一位则没有意义,要靠编程者控制,不要输出。而以%10.2f格式输出时,则是规定以10位的总宽度、2位的小数进行输出,多余的小数则自动四舍五入,不够宽度(小数点也算一位宽度)时前面补足空格,超过宽度时则按实际需要宽度进行输出。
在C语言中如何不四舍五入保留小数
但是如果你要在程序中做运算的时候希望能够不四舍五入地保留小数,那下面的方法可以做到。include <math.h> 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();...
c语言输出% f的格式?
printf("%f",fVal);\/\/这是浮点默认输出格式,小数点保留6位 printf("%.1f",fVal);\/\/.1是说明,小数点保留1位,对其后的数据进行四舍五入 printf("%.2f",fVal);\/\/.2是说明,小数点保留2位,对其后的数据进行四舍五入,你想保留几位,就用点几 printf("%10f",fVal);\/\/输出宽度为10个...
c语言输入数据时% f.% m. n是什么意思?
如果数字位数不满4就右对齐左补空格,超过4就按原样输出。49.5刚好是四位 m.n的意思:m表示对应的输出项在输出设备上所占的字符数。n表示精度,即小数点后保留几位(不会自动进行四舍五入运算),比如输出1.1234按%4.1f输出的结果就是 1.1。输出结果为两个一和一个小数点占三位。m=4表示要...
C语言这题如何不四舍五入
int(1000 * num)\/1000.0 \/ r = 1 h = 1 底面积 = 3.141 体积 = 3.141 Press any key to continue \/ include <stdio.h> define PI 3.14159265f int main() { float r,h,s,v;printf("r = ");scanf("%f",&r);printf ("h = ");scanf("%f",&h);s = PI*r*r;v =...