问题补充说明:有的时候输出为%lf答案就正确 。%f就错 。为什么?老师说LF是DOUBLE类型 代表15位有效数字 。但是在求三角形面积问题里根本与这个无关 。以下代码把%f改为%lf就能输出正确答案 。为什么?? #include "stdio.h" #include "math.h" int main (void) { double a,b,c,s; printf("Please enter 3 reals:\n"); scanf("%f%f%f",&a,&b,&c); if((a+b)>c&&(a+c)>b&&(b+c)>a) { s=(a+b+c)*0.5; printf("\nArea of the triangle is %lf\n",sqrt(s*(s-a)*(s-b)*(s-c))); } else printf("It is not triangle!\n"); return 0; }
由于精度的原因 , 输出%lf和%f的数据不同 , 可能会造成错误 。
主要有一下四点区别:
1、代表的数据类型不同
【C语言问题%f和%lf的区别】%f代表单精度浮点型数据(float) , %lf代表双精度浮点型数据(double哪态干害全自最菜) 。
2、有效数字位数不360问答同
单精度浮点数有效东刘式促黑唱温获移婷认数字保证6位 , 部分7位 , 双精度浮点数有效数字保证15位 , 部分16位 。

3、所能表示数的范围不同
单精度浮点的表示范围:-3.40E+38~+3.40E+38 , 双精度浮点的例字回血零今丝按静节表示范围:-1.79E+只或企天区背308~+1.79E+308
4、在程序中处理速度不续实评胡校观同
一般来说 , CPU处理单精度浮点数的速度比处理双精度浮点数快 。
猜你喜欢
- 裂变是什松小候么意思?
- 庠生是什么意思
- 看电影好处是
- 荣放和奇骏哪个好?
- 姓陈的女明星有哪些
- 北京市对外贸易学校 怎么样?
- 鹤立鸡群猜一生来自肖,
- 黄芪当归水的比例是多少
- 整牙的坏处!!!
- 怎么调理早泄
