爱问知识人 爱问教育 医院库

C语言数据类型题double和float区别

首页

C语言数据类型题double和float区别

表达式18/4*sqrt(4.0)/8值得数据类型为
答案是double
为什么不是float呢?

提交回答
好评回答
  • 2010-01-11 20:54:47
    因为sqrt函数的声明为
    double sqrt(double x); 
    而你的表达式是18/4*sqrt(4.0)/8,
    其中18,4,8这几个数是整型,而sqrt(4.0)返回的是double型,根据C语言中的转换法则(PS:这个相信你也清楚,我就不多说了),计算出来的结果当然为double型

    k***

    2010-01-11 20:54:47

其他答案

    2010-01-11 19:28:38
  •   在进行运算时,不同类型的数据要先转换成统一类型,然后进行运算。转换的规则按下图所示:
    double←float            
      ↑                    
    long                   
      ↑                   
    unsigned                      
      ↑                    
      int ← charshort
    箭头方向只表示数据类型级别的高低,由低向高转换。
       1。横向向左的箭头表示必定的转换,如字符数据必定转换为整数,short型转换为int型,float型数据在运算时一律先转换成双精度型,以提高与暗算精度,即使是两个float型数据相加,也先化成double型,然后再相加; 2。
      纵向箭头表示当运算对象为不同类型时转换的方向,例如int型与double型数据进行运算,先将int型的数据装换成double型,然后在两个同类型(double型)数据间进行运算,结果为double型。 换言之,如果有一个数据是float或double型,则另一数据要先转换为double型,运算结果为double型。
       由上可知,最终的结果为double型! 如果觉的我答案有用,请点赞。

    敢***

    2010-01-11 19:28:38

类似问题

换一换
  • C/C++ 相关知识

  • 电脑网络技术
  • 电脑网络

相关推荐

正在加载...
最新问答 推荐信息 热门专题 热点推荐
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200

热点检索

  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 175-194
返回
顶部
帮助 意见
反馈

确定举报此问题

举报原因(必选):