c语言问题,17题为什么答案是double不是float,这两个有什么区别

如题所述

sqrt函数返回值是double。表达式包含隐性转换,规则就是尽量保证数据精度不丢失。

对编程人员来说,double 和 float 的区别是double精度高,有效数字16位,float精度7位。但double消耗内存是float的两倍,double的运算速度比float慢得多,C语言中数学函数名称double 和 float不同,不要写错,能用单精度时不要用双精度(以省内存,加快运算速度)
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-07-02
系统默认小数是double,所以你调用sqrt时,其实是这个用法double sqrt(double),返还的是double类型,double类型和其他类型运算的时候,系统会自动把数都变成double类型进行运算,返还的也是double。double是双精度浮点数,一般占8个字节,float是单精度浮点数,一般占4个字节,int也是4个字节。一般运算的时候,精度低的会向精度高的转化,double>float>int

float占4个字节,也就是32位,存储方式是1位符号位(1表示负数,0表示正数)+8位阶码(移码表示,也就是2的几次幂)+23位有效位(原码表示)
double占8个字节,也就是64位,存储方式是1位符号位+11位阶码+52位有效位。

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网