扬帆大鱼
double是一种数据类型,用来声明一个变量的类型。比方说你写了一个字,为了告诉别人它是什么东西,它是一个汉字,你可以用“ 汉字 字;”这种格式来告诉别人那个字是个汉字。同样道理,C++中你想建立一个变量的时候,需要告诉编译器变量的数据类型,以便编译器给变量分配存储空间。格式:int i; 这是整型变量的声明格式。如果要声明双精度型变量,也就是小数,相同道理double i;这样编译器就知道i是一个双精度小数变量。另外 float也表示小数,是单精度小数。float和double的区别在于,float所允许的小数范围小,double允许的小数范围大。追问Sorry!!!
我想问一下,双精度小数具体允许到小数点后几位?既然双精度允许范围大,那是不是可以不用单精度的,它们各有什么优势?
先谢啦!!!追答单双精度小数不是按小数点后有几位小数来区分的,而是按有效数字的不同。
float 有效数字7位,取值范围从3.4E-38~3.4E+38。比方说a=1111.11111111,因为有效位数是7位,整数部分已占4位,则只有小数点后3位有效。
double 有效数字16位,取值范围从1.7E-308~1.7E+308。例子和上面情况差不多,自己应该能看出来。
另外,单精度在内存中占4个字节的空间;而双精度占8个字节,在精度要求不高的情况下,为了节省内存,采用float。