百度试题 题目下面这段代码,用 %d 格式打印输出 double 型变量,不会进行取整,打印输出的结果不会为 3 。 #include int main(){ double pi = 3.14159; printf("%d", pi); return 0; } A.正确B.错误相关知识点: 试题来源: 解析 A
用%d格式打印输出double型变量,不会自动进行取整,输出的将是错误的值。你可以用 强制转换来做:double pi = 3.14159; printf("%d", (int) pi); //输出3 也可以用格式 %.0f 来做: printf("%.0f",pi); //输出3
。 002、%d输出double型数据 [root@PC1 test]# ls test.c [root@PC1 test]# cat test.c## 测试程序#include<stdio.h>intmain(void) {doublei =5.5; printf("i = %d\n", i);// %d输出double型数据return0; } [root@PC1 test]# gcc test.c-o kkk [root@PC1 test]# ls kkk test.c [ro...
第一、1.2在内存中是以double类型存储的,具有64位的长度,但是%d输出时只能截取低32位进行输出。 第二、根据默认参数提升的概念,float类型的参数b被自动提升为double类型,这样也只能输出低32位。 但是a提升为double时和1.2在内存中默认存储不一样,导致了最后结果的不一样。 参考文章:C语言中的printf用%d输出float类...
然而你刚才问这个问题是常见的64位结构double和32位结构int,存在编译器的不确定性,有的编译器会将在...
c语言double类型不能用%d输出,会出错 #include <stdio.h>#include<math.h>int main(){double PI,last,sum; double i=2,j=1; int k=1; sum=1; do{last=i/j; sum=sum*last; if(k%2==0) i=i+2; else j=j+2; k++; }while(fabs(2*sum-3.1415)>0.00001); PI=2.0*sum; printf("%.4
double是双精度浮点型对应输出%f,int是整形对应%d 浪稳如狗 毛蛋 1 建议问度娘 GTA小鸡 麻婆豆腐 11 内存中的数据没有类型信息,你告诉printf是什么类型,它就按什么类型解释。你告诉printf是%d类型,它就往后取4字节按int的格式解释。double型的数据按int格式解释,结果自然完全错误。要弄懂double型的数据在内...
f 浮点数 s 字符串 c 单个字符 p 指针的值 e 指数形式的浮点数 x, %X 无符号以十六进制表示的整数 o 无符号以八进制表示的整数 g 自动选择合适的表示法 p 输出地址符 可以在"%"和字母之间加小写字母l, 表示输出的是长型数。例如: %ld 表示输出long整数 lf 表示输出double浮点数 你用%d去...
百度试题 题目要输出double型的数据,用( ) A. %d B. %lf C. %c D. %f 相关知识点: 试题来源: 解析 D.%f 反馈 收藏
1.双精度浮点型数据用%lf输出。因为double是8个字节的,float是4个字节的,%f 的格式就是4个字节的,而 %lf 就是8个字节的。 例如:printf("%lf\n",x);2.short 占用内存空间2个字节,短整型数据用%d输出 例如:printf("%d\n",a);例:include <stdio.h> int main(){double x;short...