#include <stdio.h>
void main()
{
float x,y;
x=111111.111;y=222222.222;
printf("%f",x+y);
}
为什么输出的结果是333333.328125??
请大神详细点解说
c语言printf("%f")的问题!
x=111111.111;y=222222.222;尽管它们的和的真值为333333.333,但由于它们是float浮点数,只保留7位有效数字,即前面的7个3是有效的,而后面的则都是由一些无效数字组成,因此结果为333333.3XXXXX,这些X都是些随机的无效数字。
C语言printf中的f的用法?
1.C语言中printf输出float和double都可以用%f,而double型数据还可以用%lf。2.scanf当中若是对双精度的变量赋值是必须是%后跟lf,而printf当中可以用%f也可以用%lf没有限制。
c语言以%f形式输出小数,和实际的不一样?
浮点数是近似值 无法精确表示
c语言输出% f的格式?
printf("%f",fVal);\/\/这是浮点默认输出格式,小数点保留6位 printf("%.1f",fVal);\/\/.1是说明,小数点保留1位,对其后的数据进行四舍五入 printf("%.2f",fVal);\/\/.2是说明,小数点保留2位,对其后的数据进行四舍五入,你想保留几位,就用点几 printf("%10f",fVal);\/\/输出宽度为10个...
C语言%f精确度的问题
printf("%f",123.54);这句话是以单精度浮点格式输出 默认是输出6位小数 如果你要控制输出的小数位数 可以用格式控制来实现 例如你就想输出2位小数 可以这么写 printf("%.2f",123.54); 精确到个位的话 printf("%.0f",123.54);其他格式控制还请你翻下书 有很多功能的 ...
在C语言中% f有什么作用啊?
在这个例子中,%f 是printf函数的格式控制符,它告诉函数接下来的输出应该是一个浮点数。num是存储浮点数的变量,其值为3.14159。最后,printf函数将浮点数输出到屏幕上,加上一个换行符。需要注意的是,%f 格式控制符默认按照C语言的标准浮点数格式输出浮点数,即小数点后6位有效数字,保留两位小数。...
c语言中为什么% f后面要加上数字?
f是用于格式化输入输出函数,对应类型为float的格式字符。加数字的情况仅适用于输出函数,比如printf。其形式为 printf("%a.bf", var);其中a,b为常数。含义为:1 a, 代表输出占|a|(a的绝对值)个字节的宽度,当实际宽度超过a时,按实际宽度输出,否则输出a个字节,不足部分补空格。如果a为正数...
c语言中 printf后的%f 和%d 有什么区别
在C语言中,printf函数的格式化字符串中,%f和%d格式字符分别对应着不同类型的参数。f用于表示单精度浮点型(float)数据,而%d则用于整型(int)数据。当参数类型与格式字符不匹配时,C编译器会自动进行强制转换,使得参数符合格式字符的要求。以float a=1.0; int b = 2;为例,使用printf("%f,%d ",...
c语言中%f的的输入输出问题
计算机内部用2进制。输入17.8,计算机内化为2进制时化不净,所以自动丢去尾数,从而引入了“截断误差”,输出时,再化回10进制,就看出“截断误差”。printf("%.4f\\n",a); \/\/ 考虑精度,输出有限小数位,就好了。printf("%g\\n",a); \/\/ 改用 %g 格式也可以。
c语言printf输出float数据的问题
printf输出实型数据的时候,%f默认输出,实型数据的小数位数是6位 x是用于,以十六进制形式,输出整数 而这里,num是实数,所以类型不匹配,输出0