基本数据类型

阅读(811) 标签: 数据类型, 判断,

  本章节介绍集算器中支持的数据类型及判断数据类型涉及到的函数。

集算器中的数据类型

在集算器中,有以下几种基本数据类型:

Ø  整数

32位整数,即-231~231-1之间的整数,其取值范围-2147483648~2147483647,可用类型转换函数int()将其它类型数据转换为32位整数。

Ø  长整数

64位整数,即-263~263-1之间的整数,比整数类型的取值范围更大,可用类型转换函数long()将其它类型数据转换为长整数。

特别的,可以在整数后面添加大写的L表示长整数,长整数与整数相比有更大的取值范围;还可以用0x开头的串来表示十六进制的长整数:

 

A

1

=123456789L*1000

2

=123456789*1000

3

=12345678900*10

4

0x00FF

由于普通整数的取值范围是-231~231-1,即-2147483648~2147483647,因此A2中的结果超出了整数的取值范围。而A1中,使用了长整数,取值范围增大为-263~263-1,就可以获得正确结果。A312345678900超出了普通整数的取值范围,会被自动解析为长整数。A4中是十六进制的单元格常数。A1,A2,A3A4中的值如下:

    

A1A3中的计算结果可以发现,在进行某一步运算时,当参与运算的操作数之一为长整数,结果就是长整数。

Ø  浮点数

64位浮点数,这是集算器中最常用的数据类型,涉及小数的运算基本都是用它来计算的,可用类型转换函数float()将其它类型数据转换为浮点数。由于浮点数是用二进制规则存储数据的,因此在计算中有可能出现误差。

 

A

1

43.41

2

-4.45E13

3

3%

4

=float(54)

A1,A2,A3A4中的值如下:

    

其中,A2中为用科学计数法表示的浮点数;A3中为百分数表示的浮点数,百分数的这种写法只能作为常数使用,而不能用在表达式中。

Ø  长实数

长实数可以无误差地存储任何实数,但是使用长实数计算时,需要消耗更多的内存,且计算的效率较低。可用类型转换函数decimal()将其它类型数据(如字符串)转换为长实数。

 

A

1

5.2

2

=A1*A1

3

=decimal("5.2")

4

=A3*A3

A1中为浮点数5.2A3中将字符串"5.2"转换为长实数。A2A4中计算的结果如下:

 

可以看到,由于采用二进制处理,因此浮点数的运算可能造成精度误差,而长实数的计算没有这种情况。

Ø  实数

实数包括整数、长整数、浮点数、长实数这四种类型,可用类型转换函数number()将其它类型数据转换为实数。

Ø  布尔型

包括true/false

 

A

1

true

2

false

3

=4>2

4

=13%3==0

A1,A2,A3A4中的结果如下:

    

Ø  字符串

在使用表达式时,用双引号括起来,其中转义字符用\。而在直接定义字符串常量时,不用引号,还可以用函数string()将其它类型的数据转换为字符串。在表达式中计算两个字符串xy合并,可以在之间添加空格x y。在将两个字符串合并时,也可以直接用加法,写作x+y,但是此时xy必须均为字符串,如果其中之一为实数,结果即为实数而不是字符串。如果需要将实数作为字符串,与其它字符串连接,可以用x/y,来计算,此时如果xy其中之一为字符串,结果即为字符串。

字符串转义规则与JAVA相同,可参考使用手册。

 

A

1

Amy

2

="State:\tTX"

3

="Texas" "Dallas"

4

=A1+3.14

5

=A1/3.14

A1,A2,A3,A4A5中的结果如下:

    

Ø  日期/时间

写成yyyy-mm-ddhh:mm:ss形式。可以用类型转换函数date()time()datetime()将字符串或者长整数转换为日期,时间或者日期时间类型。

 

A

1

2014-10-5

2

22:15:30

3

=date("2014" "-10" "-5")

A1,A2A3中的结果如下:

   

其中,A3中的date函数除了可以将字符串转换为日期外,也可以直接设定日期的年月日,如改写为date(2014,10,5) 将得到相同的结果。

可以在菜单栏的工具选项中,点击选项按钮,在环境选项卡中,设定时间/日期数据的格式,以及字符编码等。

注意,当把数据转换为其它类型时,有可能会丢失精度。

数据类型的判断

可以用下面几个函数判断数据的类型:

Ø  ifnumber(x)

判断x是否是实数

Ø  ifstring(x)

判断x是否是字符串

Ø  ifdate(x)

判断x是否是日期类型或日期时间类型

Ø  iftime(x)

判断x是否是时间类型

 

A

1

=ifnumber(3.5)

2

=ifstring(now())

A1中,3.5是浮点数,属于实数。A2now()函数计算当前日期时间,结果不是字符串。A1A2中的结果如下: