基本数据类型

C#数据类型
.NET框架数据类型
说 明
bool
System.Boolean
逻辑值,true或者false,默认值为false
byte
System.Byte
无符号的字节,所存储的值的范围是0~255,默认值为0
sbyte
System.SByte
带符号的字节,所存储的值的范围是-128~127,默认值为0
char
System.Char
无符号的16位Unicode字符,默认值为’/0’
decimal
System.Decimal
不遵守四舍五入规则的十进制数,通常用于财务方面的计算,默认值为0.0m
double
System.Double
双精度的浮点类型,默认值为0.0d
float
System.Single
单精度的浮点类型,默认值为0.0f
int
System.Int32
带符号的32位整型,默认值为0
uint
System.UInt32
无符号的32位整型,默认值为0
long
System.Int64
带符号的64位整型,默认值为0
ulong
System.UInt64
无符号的64位整型,默认值为0
object
System.Object
指向类实例的引用,默认值为null
short
System.Int16
带符号的16位整型,默认值为0
ushort
System.UInt16
无符号的16位整型,默认值为0
string
System.String
指向字符串对象的引用,默认值为null

 

C语言中 float、double、long double精度、数值范围

IEEE754浮点数的表示方法。C语言里对float类型数据的表示范围为-3.4*10^38~+3.4*10^38。double为-1.7*10^-308~1.7*10^308,long double为-1.2*10^-4932~1.2*10^4932.

类型

比特(位)数

有效数字

数值范围

float

32

6~7

-3.4*10^38~+3.4*10^38

double

64

15~16

-1.7*10^-308~1.7*10^308

long
double

128

18~19

-1.2*10^-4932~1.2*10^4932

decimal

128

28~29

±1.0*10^28 ~ ±7.9*10^28

 

基础类型描述:

byte: 八位整数 -128——127,可用来节省内存的使用。
short: 16位整数 -32768——32,767,也比较省内存。
int: 32位整数 -2,147,483,648——2,147,483,647,一般来说整数都够用了
long: 64位整数 -9,223,372,036,854,775,808—— 9,223,372,036,854,775,807,一般不需要用
float: 32位浮点,如果浮点需要节省内存用这个。
Double: 64位浮点,一般非整数浮点可用这个。

 

究竟如何计算该范围,分析如下:

对于单精度浮点数(float)来说,符号位一位,指数位8位,尾数23位。指数能够表示的指数范围为-128~127。尾数为23位。

float和double的精度是由尾数的位数来决定的。浮点数在内存中是按科学计数法来存储的,其整数部分始终是一个
隐含着的“1”,由于它是不变的,故不能对精度造成影响。float:2^23 =
8388608,一共七位,这意味着最多能有7位有效数字,但绝对能保证的为6位,也即float的精度为6~7位有效数字;double:2^52 =
4503599627370496,一共16位,同理,double的精度为15~16位。

 

其中负指数决定了浮点数所能表达的绝对值最小的非零数;而正指数决定了浮点数所能表达的绝对值最大的数,也即决定了浮点数的取值范围。float的范围为-2^128 ~
+2^128,也即-3.40E+38 ~
+3.40E+38;double的范围为-2^1024 ~
+2^1024,也即-1.79E+308
~+1.79E+308。

 

以float为例,如下表:

符号

尾数

指数

1

23

8

数符(+-)

小数部分(决定精度)

-127~128 指数(决定范围)

 

例如:

+1.1111111111111111111111*2^127(小数点后面23个1,由于尾数的范围1~2,其最高位总为1,故只需存取小数部分,所以小数为是23位1),约等于2*2^127=3.4*10^38。为3.4*10^38负数亦然。

Double的计算与此类似,double的符号位为63位,指数为62~52位,共11位。表示的范围为-1024~1023。尾数为51~0。表示的
范围为+1.1111111111111111..11111*2^1023(小数点后面52个1)为1.7*10^308。负数亦然。

 

mysql & java:

类型名称 显示长度 数据库类型 JAVA类型 JDBC类型索引(int)
VARCHAR L+N VARCHAR java.lang.String 12
CHAR N CHAR java.lang.String 1
BLOB L+N BLOB java.lang.byte[] -4
TEXT 65535 VARCHAR java.lang.String -1
INTEGER 4 INTEGER UNSIGNED java.lang.Long 4
TINYINT 3 TINYINT UNSIGNED java.lang.Integer -6
SMALLINT 5 SMALLINT UNSIGNED java.lang.Integer 5
MEDIUMINT 8 MEDIUMINT UNSIGNED java.lang.Integer 4
BIT 1 BIT java.lang.Boolean -7
BIGINT 20 BIGINT UNSIGNED java.math.BigInteger -5
FLOAT 4+8 FLOAT java.lang.Float 7
DOUBLE 22 DOUBLE java.lang.Double 8
DECIMAL 11 DECIMAL java.math.BigDecimal 3
BOOLEAN 1 同TINYINT
ID 11 PK (INTEGER UNSIGNED) java.lang.Long 4
DATE 10 DATE java.sql.Date 91
TIME 8 TIME java.sql.Time 92
DATETIME 19 DATETIME java.sql.Timestamp 93
TIMESTAMP 19 TIMESTAMP java.sql.Timestamp 93
YEAR 4 YEAR java.sql.Date 91

 

 

 

此条目发表在.net分类目录,贴了标签。将固定链接加入收藏夹。