VB data type

 

一、数值类型

1、unsigned 和 signed 数值类型

   sign 指的是 +/- 正负符号,unsigned 数值类型即无正负符号的数值类型,也就是正值数值类型;signed数值类型即带正负符号的数值类型,可能是正值也可能是负值,但其绝对值范围约为对应 unsigned数值类型的一半。

如:SByte (signedByte)占用1个字节,取值范围为 -128 到 127,而 Byte取值范围为0到255。

    Short 占用2个字节,取值范围为-32768 到32767,而 UShort (unsigned Short) 取值范围为0到65535。

   Integer 占用4个字节,取值范围为 -2147483648 2147483647,而UInteger (unsigned Integer)取值范围为0到

4294967295。

   Long 占用8个字节,取值范围为 -9223372036854775808 到9223372036854775808,而ULong (unsigned Integer) 取值范围为0到18446744073709551615。

   Decimal 可以表达更大精确度。

 

2、非整数 数值类型
非整数类型包括Single(32位,4字节)单精度浮点数和Double(64位,8字节)双精度浮点数。浮点数也就是实数。定点数取值不允许有舍入的误差,而浮点数允许有舍入的误差。可以用Rnd函数表示一个随意的>=0而且小于1的Single数,比如表示一个1-10之间的整数:var=Int(Rnd()*10+1)。Decimal(128位,16字节)定点数表示的小数范围比Single和Double要小,但精确度高。

 

3、System命名空间还提供了以位为标志的整型数值类型:Int16、Int32、Int64、UInt16、UInt32、UInt64。在VB6中,一个Long类型数值占用32位(4字节),而在VisualBasic .NET 中一个Integer类型数值就占用32位,Long类型数值占用64位(8字节)。Byte8位,1个字节;Short16位,2个字节。计算机处理4字节数值更高效一些,所以我们一般常声明整数用Integer,声明小数用Single。

 

4、数值变量类型符

  附加在变量名称后面,等于 As +相应的类型名。如: Dim zhengshu% (= Dim zhengshu As Integer)

 % --Integer, ! -- Single,# -- Double, & -- Long,@ -- Decimal

 

5、文字式数值类型符 

  附加在数字赋值后面。如: j = 12S (= Dim j AsShort : j = 12)

S --Short, US -- UShort, I --Integer, UI -- UInteger, L --Long, UL -- ULong, D -- Decimal, F --Single(F=floating point), R --Double(R=real)。

  另外在数字前加 &O 表示8进制数值,在数字前加 &H 表示16进制数值。可以用Hex(数值)返回相应16进制表达字符,用 Oct(数值)返回相应8进制表达字符。


二、字符类型
  字符数据类型,用以处理可打印和显示的字符。字符数据类型包括Char类型和String类型,它们不能和数字类型数据直接进行转换。
1、 Char类型
Char类型(单个Unicode字符数据类型,也就是说这种变量只接受一个字符的数据)占用单个两字节(16位)Unicode字符(统一的字符编码标准,采用双字节对字符进行编码,中文就是Unicode字符,而英文则是非Unicode字符)。
2、 String类型
String类型(也称为字符串数据类型)为0个或多个双字节Unicode字符(最多有近20亿个),初始值为null。

 

三、日期类型
   Date
日期数据类型(64位)表示日期时间,范围从公元1年1月1日0:0:00到公元9999年12月31日11:59:59。注意:Date类型必须用“#”括起来。Date类型中可以只有日期,也可以只有时间,日期用/号分割,时间用:号分割。Date类型是以数字存储的,所以可以用DateDiff计算时间间隔,用DayOfYear方法计算该日期为一年中的第几天。我们可以用其ToOADate方法返回Date类型实例的等效OLE自动化日期(Double类型)。


四、布尔类型
    Boolean布尔数据类型(32位)占用2个字节,只有两个值:真(True)和假(False),经常被用来表示逻辑判断的结果。

 

五、对象类型
  Object
对象数据类型为一个32位地址,相当于VB6中的Variant类型,它指向应用程序或其他应用程序中的一个对象。如果数据为Object类型,则它可以指向任何应用程序可处理的对象。它可以接收任何类型数据。当其中包含值类型时,Object类型数据被作为值类型处理;当其中包含引用类型时,Object类型数据被作为引用类型处理。

 

六、自定义结构/值类型

   在VB6中用户自定义类型的关键字是Type,在vb.net中大部分用Structure,可以包含有一个或多个不同种类的数据类型,尽管结构中的数据可以单独被访问,但是这些数据仍被认为是一个集合整体。
   自定义结构类型的定义以Structure关键字开始,以EndStructure关键字结束,结构中的元素可以是任意的数据类型的组合,包括其他结构。结构一旦定义出来后就可以被用作变量声明、参数传递以及函数的返回值等用途,下面是一个结构的语法:

   如下例定义一个Employee结构:

    Structure Employee

     PublicFirstName As String 

    Public FamilyName As String

    Public Extension As Long

    End Structure

Structure类型占用内存空间是其包含的所有数据类型所占用内存空间的总和。

 

七、数据类型转换 

CBool,CByte,CSByte,CChar,CStr,CDate,CDble,CSng,CDec,CInt,CUInt,CShort,CUShort,CLng,CULng,CObj

 

1.取整函数

(1)整型转换函数是将小数部分四舍五入掉,使被转换的数值转变为其最接近的整数值。注意:如果小数部分正好是0.5,CInt和CLng会四舍五入到最接近的偶数值。如:CInt(0.5)结果为0,CLng(4.5)结果为4,CInt(7.5)结果为8,CLng(14.7)结果为15。

(2)FixInt函数不四舍五入,直接删除小数部分,取得整数值部分。Fix的取值方向趋向0,如:Fix(-9.9)结果为-9,Fix(-9.2)结果为-9,Fix(-0.9)结果为0。但Int函数在取负数小数的整数时,会取比当前数值小的整数部分,如:Int(-9.9)结果为-10,(-9.2)结果为-10。所以,当负数小数部分大于0.5时,CInt相当于Int。

(3)CInt返回值为Integer类型,CLng返回值为Long类型;而Fix和Int返回值与被转换的数值类型一致。

 

2.CType、DirectCast、TryCast(被转换数据,数据类型X)

三个函数均返回数据类型X,但DirectCast和TryCast被转换数据必须继承自或实现数据类型X,否则DirectCast会发生InvalidCastException错误,而TryCast会返回Nothing。DirectCast可以接值类型(已过时)或索引类型,而TryCast只接索引类型。

Dim q As Object = 2.37
Dim i As Integer = CType(q, Integer)
' 以下转换会发生错误
Dim j As Integer = DirectCast(q, Integer)
Dim f As New System.Windows.Forms.Form
Dim c As System.Windows.Forms.Control
' 以下转换成功
c = DirectCast(f, System.Windows.Forms.Control)

 

3.ParseToString方法

基础数据类型(除String外)的Parse方法将字符数据转换为该类型。 Parse在对字符数据进行转型时比CType,CDate等要快。例:

Dim rq as Date

rq = Date.Parse("3-4-1999)

变量名.ToString()--〉将变量的值转换为文本。ToString可以带有一个格式化文本的字符参数,如:

Dim s As Double,str As String

s = 455454454

str = s.ToString("0.00")

str显示结果为455454454.00

 

4.Convert

Convert类提供了许多方法.ToBool,ToByte,ToChar,ToDateTime,ToDecimal,ToDouble,ToSByte,ToSingle,ToString,用来将一个值转换为另一种类型的值。Convert为NET框架类,所以在把数据转换为整型数值时,它使用的是.ToInt16.ToInt32 .ToInt64 .ToUInt16 .ToUInt32 .ToUInt64方法,而不是.ToInt,ToShort,ToLong。如:

Dim i As Integer =Convert.ToInt64("23")   

Dim s As Boolen =Convert.ToBoolen(3)

 

八、判断变量数据类型

VarType(数据X)可以返回一个枚举值,该值代表数据X的数据类型。所以判断一个数值的数据类型,可以通过VarType来判断,如:

Dim lx as Integer,dbl As Double,sz AsObject

sz = 6.0

lx = VarType(v)

If lx = VarType(dbl) then

MessageBox.Show(sz.ToString &"是Double类型数值")

Else

MessageBox.Show(sz.ToString &"不是Double类型数值")

End If
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值