黑马程序员技术交流社区

标题: 单精度float和双精度double的区别? [打印本页]

作者: 周培    时间: 2013-8-20 12:58
标题: 单精度float和双精度double的区别?
  1. float flo = 6.6F;
  2. double dou = flo;//float类型隐式转换为double类型
  3. Console.WriteLine("float:{0},double:{1}", flo, dou);
  4. if (flo== dou)
  5. {
  6.      Console.WriteLine("true");
  7. }
  8. else
  9. {
  10.      Console.WriteLine("false");
  11. }
复制代码
如上代码,单精度float和双精度double输出的值不同,但进行判断时结果却为true,
它们到底有什么区别?


作者: 念念念念_、    时间: 2013-8-20 13:45
二者的取值范围和精度是不同的
float的精度是6位有效数字,取值范围是10的-38次方到10的38次方,float占用4字节空间
double的精度是15位有效数字,取值范围是10的-308次方到10的308次方,double占用8字节空间。
作者: 左岸    时间: 2013-8-20 14:18
float 类型可以约七位的准确度表示大至 3.4E+38(正或负)的数字和小至 1E-44 的数字。 float 类型还可以表示 NaN(不是数字)、正和负无穷大和正和负零。该类型对于需要大数但不需要很高的准确度的应用程序很有用。 如果需要非常准确的数字,请考虑使用 Decimal 数据类型。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2