c语言 不匹配的浮点数转换

问1。:第一行 n3n4是为什么
问2:第三行不太懂

输出格式要同变量类型匹配。不匹配,输出的结果就会错。

float double 可以用 %e 格式,整型不可以。
整型可以用%d %ld 格式, float double 不可以。
除非用强制转换:
printf("%e %e %e %e \n", n1, n2,(double) n3,(double) n4);
printf("%ld %ld %ld %ld",(long)n1,(long)n2,n3,n4);

由于输出是流,n1,n2,n3,n4 四个变量的单元按字节流入,输出,按格式转换,前面的错了(字节找错了),会影响后面,所以第三行看不懂了。
printf("%ld %ld %ld %ld",n1,n2,n3,n4);
温馨提示:内容为网友见解,仅供参考
无其他回答

c语言 不匹配的浮点数转换
输出格式要同变量类型匹配。不匹配,输出的结果就会错。float double 可以用 %e 格式,整型不可以。整型可以用%d %ld 格式, float double 不可以。除非用强制转换:printf("%e %e %e %e \\n", n1, n2,(double) n3,(double) n4);printf("%ld %ld %ld %ld",(long)n1,(long)n2,n3,n4);由于...

c语言 不匹配的浮点数转换
第一行n3 n4是因为整型和浮点型存储格式不一样,按整型存储而按浮点格式读出肯定得出错误的结果。如果不太理解,举个简单的例子——char型(8位),有符号类型和无符号类型就可以说存储格式不一样,把255赋给无符号char型(按无符号存储,二进制为11111111),再按有符号打印结果就是-1(-1按有符...

C语言 不匹配的浮点数转换
printf并没有对参数进行自动的转换,它是一个比较特殊的函数,第1个printf中的n3,n4并没有转换成浮点数,程序直接把它们的内存值打印了,结果就是一些怪异的值 第3个printf也是一样的,程序直接把n1和n2的内存值以整形形式打印出来,并没有进行任何类型转换,...

c语言中浮点数怎样转换为整型?
C语言中,浮点型转换为整型可以用:强制类型转换、自动类型转换,例如:(int)3.14、int a = 3.14。1、强制类型转换 强制类型转换是通过类型转换运算来实现的。其一般形式为:(类型说明符)(表达式),其功能是把表达式的运算结果强制转换成类型说明符所表示的类型。例如: (double) a 把a转换为双...

C语言怎样将浮点数转换成整数?
需要准备的材料分别有:电脑、C语言编译器。1、首先,打开C语言编译器,新建一个初始.cpp文件,例如:test.cpp。2、在test.cpp文件中,输入C语言代码:double a = 2.71828;printf("%d", int(a));。3、编译器运行test.cpp文件,此时成功将浮点数2.71828转换为了整数2。

c语言中如何将浮点数转换成整数?
在C语言中,将一个浮点数变换成整数的示例:main(){ float f=5.75;printf("f=%d,f=%f\\n",(int)f,f);} 执行程序,输出结果为f=5,f=5.750000。 f=5即为由浮点数转化出的整数。上述示例中f虽强制转为int型,但只在运算中起作用, 是临时的,而f本身的类型并不改变。因此,(int)f的...

C语言关于浮点转换运算的问题
arm_mult_f32(&f1, &TestNum, &f1, 1);从这里知道函数arm_mult_f32的第二个参数应该是浮点数指针,可是arm_mult_f32(&f1,(int*)u, &f1, 1);却把第二个参数变为整型指针了,类型不配就要出错。另:TestNum=(int)u;这是什么意思?u本来就是int型,用不着用(int)强制;再说了,Test...

C语言:十六进制(HEX)和浮点类型(float、double)转换
在编程中实现十六进制与浮点类型转换是常见的需求。在C语言和C#语言中,浮点类型如float和double分别由IEEE标准R32.24和R64.53规范存储。float和double存储方式分为三部分:符号位、指数位和尾数部分。其中,float存储方式由符号位、8位指数位和23位尾数部分组成,而double则包括1位符号位、11位指数位和...

c语言如何把浮点数转换成二进制
C语言和C#语言中,对于浮点类型的数据采用单精度类型(float)和双精度类型(double)来存储,float数据占用32bit,double数据占用64bit,我们在声明一个变量float f= 2.25f的时候,是如何分配内存的呢?如果胡乱分配,那世界岂不是乱套了么,其实不论是float还是double在存储方式上都是遵从IEEE的规范的,...

关于c语言强制类型转换出现的问题?双精度浮点数1000转换成整数后怎么变...
void main(){ double i=0.01\/0.00001;double j=0.01\/0.000000001;double k=1000.000000;printf("%f\\n",i);printf("%d\\n",int(i+0.0000001));printf("%f\\n",j);printf("%d\\n",int(j+0.00000001));printf("%d\\n",int(k));} 浮点型转换成整型C语言存在误差,所以在强制转换...

相似回答
大家正在搜