工具搜索引擎 加入收藏
意见反馈
帮助中心
繁體中文
首页 工具超市 产品信息 资讯中心 工具黄页 站长工具 实用工具 会员管理 联系我们  
广告投放
您当前的位置:工具网站长书库> vb2005教程

数据类型中整数和浮点数的使用

运用 Visual Basic 处理数字时,要用到两种类型的数字:整型和浮点型。整型只能表示整数,浮点型主要用于表示带有小数的数字,虽然浮点数也可以表示整数。

常见的整型数学运算

废话少说,先做一个整数变量的计算示例你就大致明白了。

打开 Visual Studio。在文件 (File) 菜单上,单击新建项目 (New Project)。 在新建项目 (New Project) 对话框的模板 (Templates) 窗格中,单击 Windows 应用程序 (Windows Application)。在名称 (Name) 框中键入 IntegerMath,再单击确定 (OK)。

单击工具箱 (Toolbox) 里的按钮 (Button) 控件,按住鼠标将其拖放到 Form 1 上。然后在属性 (Properties) 窗口内将其 Name 属性改为 btnIntMath,将其 Text 属性改为 Math Test。然后双击该按钮,出现 Click 事件处理程序头尾两行代码,如下:

Private Sub btnIntMath_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles btnIntMath.Click
 
End Sub

在上述代码中插入一些代码,扩充成如下:

Private Sub btnIntMath_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles btnIntMath.Click
  'Declare variable
  Dim intNumber As Integer
 
  'Set number, add numbers, and display results
  intNumber = 16
  intNumber = intNumber + 8
  MessageBox.Show("Addition test... " & intNumber, "Integer Math")
 
  'Set number, subtract numbers, and display results
  intNumber = 24
  intNumber = intNumber - 2
  MessageBox.Show("Subtraction test... " & intNumber, "Integer Math")
 
  'Set number, multiply numbers, and display results
  intNumber = 6
  intNumber = intNumber * 10
  MessageBox.Show("Multiplication test... " & intNumber, "Integer Math")
 
  'Set number, divide numbers, and display results
  intNumber = 12
  intNumber = intNumber / 6
  MessageBox.Show("Division test... " & intNumber, "Integer Math")
 
End Sub

选择调试 (Debug) 菜单中的 开始调试 (Start Debugging),运行该程序。或者直接按快捷键 F5 运行。

会弹出四个消息框,按确认 (OK) 即可关闭消息框。

我们先看其中这段代码:

  intNumber = 16
  intNumber = intNumber + 8
  MessageBox.Show("Addition test... " & intNumber, "Integer Math")

第一行代码意思:将 16 这个整数赋值给变量 intNumber。

第二行代码意思:在变量 intNumber 中存储当前的 intNumber(即16)加 8 的值。

第三行代码意思:弹出消息框,显示 intNumber 最终存储的数字。

依次类推,该程序中的其它代码你也很好理解,它们分别是变量的减法运算,乘法运算和除法运算。

整数的运算中,用 + 表示加法,- 表示减法,* 表示乘法,/ 表示除法。

Visual Basic 2005 中的整数类型 (Integer) 能表示 -2,147,483,648 到 2,147,483,647 之间的整数。

简写运算符

我们可以用简写运算符缩短我们的代码,比如

intNumber = intNumber + 8

可以简写成:

intNumber += 8

这样就不必写两次 intNumber 了。

下面依次列示了减法,乘法和除法的简写运算符

intNumber -= 8
intNumber *= 8
intNumber /= 8

整形运算的问题

整形运算的主要问题就是对小数部分无能为力。假设我们写了如下代码:

'Try multiplying numbers...
intNumber = 6
intNumber = intNumber * 10.23

这些代码虽然可以运行,但是得不到预想的结果,因为变量 intNumber 被定义为只能接收整数,所以结果是一个经过四舍五入的最接近这个值的整数。6 乘以 10.23 应该等于61.38,但是 intNumber 的返回值却是 61。

类似的问题也会出现在除法运算中,比如下列代码:

'Try dividing numbers...
intNumber = 12
intNumber = intNumber / 5

12 除以 5 应该等于 2.4,但是 intNumber 的返回值却是 2。

遇到有关小数的运算,我们应该用下面讲述的浮点运算。

浮点运算

先做一个有关浮点运算的示例吧。

打开 Visual Studio。在文件 (File) 菜单上,单击新建项目 (New Project)。 在新建项目 (New Project) 对话框的模板 (Templates) 窗格中,单击 Windows 应用程序 (Windows Application)。在名称 (Name) 框中键入 Floating-Pt Math,再单击确定 (OK)。

在窗体 Form 1 里添加一个 按钮 (Button) 控件,然后在相关属性 (Properties) 窗口内将其 Name 属性改为 btnFloatMath,将其 Text 属性改为 Double Test。然后双击该按钮,出现 Click 事件处理程序头尾两行代码,如下:

Private Sub btnFloatMath_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles btnFloatMath.Click
 
End Sub

在其中加入代码,扩充成如下:

Private Sub btnFloatMath_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles btnFloatMath.Click
  'Declare variable
  Dim dblNumber As Double
 
  'Set number, multiply numbers, and display results
  dblNumber = 45.34
  dblNumber *= 4.333
  MessageBox.Show("Multiplication test... " & dblNumber, "Floating Points")
 
  'Set number, divide numbers, and display results
  dblNumber = 12
  dblNumber /= 7
  MessageBox.Show("Division test... " & dblNumber, "Floating Points")
End Sub

选择调试 (Debug) 菜单中的 开始调试 (Start Debugging),运行该程序。或者直接按快捷键 F5 运行。

你会注意到,在上述代码中,我们将变量 dblNumber 定义成双精度的浮点数 (Double),而不是整数 (Integer) 类型。执行上述代码,得出的运算结果是带有小数的数值。

提示

之所以叫浮点数,主要是因为它存储数字的方式类似于科学计数法。当用科学计数法表示某个数时,可以表示为 1-10 之间的某个数乘以 10 的幂次方。
例如,10001 被表示为 1.0001 * 104,0.0010001 被表示为 1.001*10-3 。可以看出,小数点”浮动“到第一个数字后面。这种表示法的优点在于不管是大数还是小数,都可以用相同的精度来表示。浮点数变量以相同的方式存储在计算机里,不过不是 10 幂次方,而是 2 的 幂次方。

双精度浮点数和单精度浮点数

前面的示例中我们用了双精度浮点数 (Double)的数据类型。在 Visual Basic 中,还提供单精度浮点数 (Single) 的数据类型。

这两者主要在精度上有区别。双精度浮点数能精确表示1.79769313486231570E+308 到 -4.94065645841246544E-324 范围的负数和从 4.94065645841246544E-324 到 1.79769313486231570E+308 范围的正数。单精度浮点数能够精确表示从 -3.4028235E+38 到 -1.401298E-45 的负数和从 1.401298E-45 到 3.4028235E+38 的正数。

单精度浮点数的精度没有双精度那么高,但是所需内存少,运算速度快。

提示

如果对精度要求不高,则应该尽量避免使用双精度浮点数,而应该使用单精度浮点数。这一点在一些大型应用程序中非常重要。如果在定义变量时,单精度浮点数就足够了,但是却使用了双精度浮点数,会大大减慢程序的运行。

如果某个变量只需要整数类型就足够了,应避免用浮点数。因为整数的运算速度更快。

编者:woyouxian[at]gmail[点]com

参考:Beginning Visual Basic 2005  --> Writing Software --> Data Types --> Working with Numbers

时间:2006-11-29

返回上级目录
VB 2005 入门教程
安装 VB 2005
一个简单的 VB 2005 程序
什么是编程语言
什么是变量
数据类型概要

数据类型 - 整数和浮点数
数据类型 - 字符串
数据类型 - 日期
过程 - 子例程和函数
If...Then...Else 条件语句
Select...Case 条件语句
For...Next 循环语句