数字变量

From Apache OpenOffice Wiki
Jump to: navigation, search
doc OOo
Book.png

Apache OpenOffice Basic 支持五种处理数字的基本类型:

  • 整型
  • 长整型
  • 单精度型
  • 双精度型
  • 货币型

整型变量

整型变量可以存储介于 -3276832767 之间的任意整数。一个整型变量最多可占用两字节的内存。整型变量的类型声明符号为 %。使用整型变量进行计算的速度非常快,这对循环计数器特别有用。如果将浮点数赋值给整型变量,则会将该数字四舍五入为最接近的整数。

整型变量的声明示例:

Dim Variable As Integer
Dim Variable%

长整型变量

长整型变量可以存储介于 –21474836482147483647 之间的任意整数。一个长整型变量最多可占用四字节的内存。长整型变量的类型声明符号为 &。使用长整型变量进行计算的速度非常快,这对循环计数器特别有用。如果将浮点数赋值给长整型变量,则会将该数字四舍五入为最接近的整数。

长整型变量的声明示例:

Dim Variable as Long
Dim Variable&

单精度型变量

单精度型变量可以存储介于 3.402823 x 10381.401298 x 10-45 之间的任意正浮点数或负浮点数。一个单精度型变量最多可占用四字节的内存。单精度型变量的类型声明符号为 !

最初,使用单精度型变量是为了减少更精确的双精度型变量所需的计算时间。不过,由于不再考虑这些速度问题,因而大大减少了对单精度型变量的需求。

单精度型变量的声明示例:

Dim Variable as Single
Dim Variable!

双精度型变量

双精度型变量可以存储介于 1.79769313486232 x 103084.94065645841247 x 10-324 之间的任意正浮点数或负浮点数。一个双精度型变量最多可占用八字节的内存。双精度型变量非常适于精确计算。类型声明符号为 #

双精度型变量的声明示例:

Dim Variable As Double
Dim Variable#

货币型变量

货币型变量处理值的方式与其他变量类型有所不同。小数点是固定的,后面带有四位小数。该变量的小数点之前最多可以包含 15 个数字。货币型变量可以存储介于 -922337203685477.5808+922337203685477.5807 之间的任意值,最多可占用八字节的内存。货币型变量的类型声明符号为 @

货币型变量主要用于商业计算,由于使用了浮点数,因此会产生无法预测的舍入误差。

货币型变量的声明示例:

Dim Variable As Currency
Dim Variable@

浮点

单精度型、双精度型和货币型通常统称为浮点或浮点数类型。浮点数类型的数值可以包含不同长度的小数,它们也因此而得名:小数点似乎可以在数字中“浮动”。

您可以声明浮点类型的变量。实际的变量类型(单精度型、长整型和货币型)是在为变量赋值时确定的:

Dim A As Float
A = 1210.126

显式数字规范

可以使用多种方式表示数字,例如,使用十进制格式或科学计数法,甚至使用十进制系统以外的其他基数表示。以下规则适用于 Apache OpenOffice Basic 中的数值字符:

整数

最简单的方法是使用整数。在源文本中列出这些整数时,不使用逗号分隔千位数字:

Dim A As Integer
Dim B As Float
 
A = 1210
B = 2438

可以在这些数字前面加上正号 (+) 或负号 (-)(数字与符号之间可以有空格,也可以没有空格):

Dim A As Integer
Dim B As Float
 
A = + 121
B = - 243

小数

在键入小数时,请使用小数点号 (.) 作为小数点。此规则可确保将源文本从一个国家/地区传送到另一个国家/地区,而无需进行转换。

Dim A As Integer
Dim B As Integer
Dim C As Float
 
A = 1223.53      ' is rounded
B = - 23446.46   ' is rounded
C = + 3532.76323

也可以在小数前面加上正号 (+) 或负号 (-)(空格同样可有可无)。

如果将一个小数赋值给整型变量,Apache OpenOffice Basic 会将该数字四舍五入。

指数书写样式

Apache OpenOffice Basic 允许按指数书写样式指定数字,例如,可以将数字 1.5 x 10-10 (0.00000000015) 写成 1.5e-10。字母 "e" 可以是小写,也可以是大写,并且前面的正号 (+) 可有可无。

下面是用指数格式表示数字的几个正确和错误示例:

Dim A As Double
 
A = 1.43E2    ' Correct
A = + 1.43E2  ' Correct (space between plus and basic number)
A = - 1.43E2  ' Correct (space between minus and basic number)
A = 1.43E-2   ' Correct (negative exponent)
A = 1.43E -2  ' Incorrect (spaces not permitted within the number)
A = 1,43E-2   ' Incorrect (commas not permitted as decimal points)
A = 1.43E2.2  ' Incorrect (exponent must be a whole number)

请注意,在第一个和第三个错误示例中,即使变量返回错误的值,也不会生成错误消息。表达式

A = 1.43E -2

被解释为 1.43 减去 2,它对应于值 -0.57。不过,值 1.43 x 10-2(对应于 0.0143)才是目标值。对于值

A = 1.43E2.2

Apache OpenOffice Basic 会忽略小数点后面的指数部分,并将该表达式解释为

A = 1.43E2

十六进制值

在十六进制系统(基数为 16 的系统)中,每两位数精确地对应于一个字节。这样,便可通过一种更接近于计算机体系结构的方式来处理数字。在十六进制系统中,将数字 0 至 9 以及字母 A 至 F 用作数字。A 表示十进制数 10;而字母 F 表示十进制数 15。Apache OpenOffice Basic 允许使用十六进制整数值,但前提是前面带有 &H

Dim A As Long
A = &HFF ' Hexadecimal value FF, corresponds to the decimal value 255
A = &H10 ' Hexadecimal value 10, corresponds to the decimal value 16

八进制值

Apache OpenOffice Basic 还可以识别八进制系统(基数为 8 的系统),该系统使用数字 0 至 7。您必须使用前面带有 &O 的整数。

Dim A As Long
A = &O77 ' Octal value 77, corresponds to the decimal value 63
A = &O10 ' Octal value 10, corresponds to the decimal value 8
Content on this page is licensed under the Public Documentation License (PDL).
Personal tools