实型常量的单双精度类型有什么用与有什么区别。
例如我定义了一个数为单精度的,那么是不是说在进行运算的小数点后的数字有15个还是说数字的有效数字字数多少...
例如我定义了一个数为单精度的,那么是不是说在进行运算的小数点后的数字有15个
还是说数字的有效数字字数多少 展开
还是说数字的有效数字字数多少 展开
1个回答
展开全部
是说的有效数字,浮点数在计算机内部的表示方法是 a * 2^n 表示的,这个a所占的位数决定了精度的大小,n的大小决定了最大最小值。C语言中的float一般只有6位有效数字,而double要多一些。
追问
那double一般有多少个 而Long double 又有多少个有效数字,最后问一下计算的时候这个有效数字的有什么影响
追答
float二进制是23位,转换成10进制大概六七位
double是52位,转换成10进制大概十五、十六位
long double一般都与double是相同的。
以float为例,比如说你计算阶乘,当N=10时为3628800,这已经是7位数了,再计算N=11的时候就得到39916800,这时它大于float的最大表示精度2^23 = 8388608,那么结果已经不再准确了。与准确的值之间有误差。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询