浮子和双面有什么区别?我读过双精度和单精度的区别。然而,在大多数情况下,float和double似乎是可互换的,即使用一种或另一种似乎不影响结果。真的是这样吗?什么时候浮动和双打是可互换的?他们之间有什么不同?
3 回答
![?](http://img1.sycdn.imooc.com/533e4c5600017c5b02010200-100-100.jpg)
慕侠2389804
TA贡献1719条经验 获得超6个赞
有三种浮点类型: float
,double
,和 long double
..类型 double
提供的精度至少与 float
,以及类型 long double
提供的精度至少与 double
..类型的值集。 float
类型的值集的子集。 double
;类型的值集。 double
类型的值集的子集。 long double
.
浮点类型的值表示是实现定义的.
![?](http://img1.sycdn.imooc.com/545865890001495702200220-100-100.jpg)
慕桂英3389331
TA贡献2036条经验 获得超8个赞
float
double
#include <stdio.h>#include <math.h>void dbl_solve(double a, double b, double c){ double d = b*b - 4.0*a*c; double sd = sqrt(d); double r1 = (-b + sd) / (2.0*a); double r2 = (-b - sd) / (2.0*a); printf("%.5f\t%.5f\n", r1, r2);}void flt_solve(float a, float b, float c){ float d = b*b - 4.0f*a*c; float sd = sqrtf(d); float r1 = (-b + sd) / (2.0f*a); float r2 = (-b - sd) / (2.0f*a); printf("%.5f\t%.5f\n", r1, r2);} int main(void){ float fa = 1.0f; float fb = -4.0000000f; float fc = 3.9999999f; double da = 1.0; double db = -4.0000000; double dc = 3.9999999; flt_solve(fa, fb, fc); dbl_solve(da, db, dc); return 0;}
2.00000 2.000002.00032 1.99968
float
.
- 3 回答
- 0 关注
- 395 浏览
添加回答
举报
0/150
提交
取消