原则上来说是可以的,数组在定义时并没有限定数组元素的数据类型
二维数组又称为矩阵,本质上是以数组作为数组元素的数组。数组的定义举例:float a[3][4],b[5][10];定义a为34(3行4列)的数组,b为510(5行10列)的数组。注意,不能写成float a[3,4],b[5,10];
综上所述,二维数组可以定义成double型
int 和 double 都是基本数据类型, int 是整形, double 是浮点型。
1int 型变量占用的存储空间和机器字一样大,即 32位系统中是 4个字节; 64位系统中是 8个字节;
而 double 型变量 一般占用8字节,double 型变量占用的存储空间不会小于 int 型变量。
2double 型表示的值范围要比 int 表示的值范围大,且从 double 值转换到 int 值,会进行四舍五入,从而有精度损失。
扩展资料
一整形
1整形有char、short、int、long、long long,这5个也默认为signed XX ;
规则:short至少16位;int至少和short一样;long至少32位,且至少和int一样长;long long至少64位,且至少和long一样长。
其中,后面4个都有无符号变体。unsigned short、unsigned int、unsigned long、unsigned long long
注意,unsigned本身是unsigned int的缩写。
可以看到,在32位和64位计算机上,对于整形唯一不同的就是int和指针的大小,其中32位计算机上int占2字节,64位上占4字节。指针大小和int大小相同。
2wchar_t
char是8位字符类型,最多只能包含256种字符,许多外文字符集所含的字符数目超过256个,char型无法表示。
wchar_t数据类型一般为16位或32位
总之,wchar_t所能表示的字符数远超char型。
标准C++中的wprintf()函数以及iostream类库中的类和对象能提供wchar_t宽字符类型的相关 *** 作。
3++11新增类型:char16_t和char32_t
char16_t:16位无符号->前缀u表示
char32_t:32位无符号->前缀U表示
二、浮点型
浮点有3个,float、double、long double
规则:float至少4字节;double至少6字节,且不少于float;long double至少和double一样多。
通常float32位,double64位,long double80、96或128位。我在VS2013上测到long double位64位。
参考资料
百度百科-C++
百度百科-数据类型
SQL
Server没有double类型,若是你需要用双精度数据,如果不固定小数位,用float就可以了;
若是固定小数位,可以用numric;如果整数和小数都出现,可以用real
1 范围
float和double的范围是由指数的位数来决定的。
float的指数位有8位,而double的指数位有11位,分布如下:
float:
1bit(符号位) 8bits(指数位) 23bits(尾数位)
double:
1bit(符号位) 11bits(指数位) 52bits(尾数位)
于是,float的指数范围为-127~+128,而double的指数范围为-1023~+1024,并且指数位是按补码的形式来划分的。
其中负指数决定了浮点数所能表达的绝对值最小的非零数;而正指数决定了浮点数所能表达的绝对值最大的数,也即决定了浮点数的取值范围。
float的范围为-2^128 ~ +2^128,也即-340E+38 ~ +340E+38;double的范围为-2^1024 ~ +2^1024,也即-179E+308 ~ +179E+308。
2 精度
float和double的精度是由尾数的位数来决定的。浮点数在内存中是按科学计数法来存储的,其整数部分始终是一个隐含着的“1”,由于它是不变的,故不能对精度造成影响。
float:2^23 = 8388608,一共七位,这意味着最多能有7位有效数字,但绝对能保证的为6位,也即float的精度为6~7位有效数字;
double:2^52 = 4503599627370496,一共16位,同理,double的精度为15~16位。
我用update数据执行和直接 *** 作数据库改数据,都是这种情况。也改了实体来中的精度设置 precision="8" scale="2"都不管事。
后来在百度中看到
c#double的有效位数(也就是不管整数部分还是小数部分加起来的位数)是15位
float最多表示7位有效数据。double最多表示16位有效数据。
想到数据库设置的位数,原来数据库设置的是位数是50
不需要特别定义,只需要这样==》$a=000;感觉没什么double和float之分,你后面的计算赋予它的值有小数它自然就是double或float,没有小数就是int,如果要规定小数点后留几位可以用round函数
以上就是关于c语言中可不可以定义double型的二维数组全部的内容,包括:c语言中可不可以定义double型的二维数组、在c++中定义时int和double有何区别、SQL Server中double数据类型等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)