A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 周培 中级黑马   /  2013-8-20 12:58  /  2098 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  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,
它们到底有什么区别?

评分

参与人数 1技术分 +1 收起 理由
赵宗荣 + 1

查看全部评分

2 个回复

倒序浏览
二者的取值范围和精度是不同的
float的精度是6位有效数字,取值范围是10的-38次方到10的38次方,float占用4字节空间
double的精度是15位有效数字,取值范围是10的-308次方到10的308次方,double占用8字节空间。
回复 使用道具 举报
float 类型可以约七位的准确度表示大至 3.4E+38(正或负)的数字和小至 1E-44 的数字。 float 类型还可以表示 NaN(不是数字)、正和负无穷大和正和负零。该类型对于需要大数但不需要很高的准确度的应用程序很有用。 如果需要非常准确的数字,请考虑使用 Decimal 数据类型。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马