常数

阅读(13494) 标签: 常数,

在使用集算器计算时,经常会用到常数,有时还会直接把数据存储在网格中。在这里,我们来了解一下集算器中常数的使用。

在表达式中直接使用常数

在集算器的表达式中,可以直接使用常数:

 

A

1

=64-32

2

=round(1.45*5.5)

3

=isupper("Tom Sawyer")

在表达式中使用常数时,整数或浮点数可以直接使用,字符串则需要用双引号""括起来,布尔型的常数truefalse也可以直接用在表达式中,但是使用的机会比较少。A1A2A3的结果分别如下:

   

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

 

A

1

=123456789L-100

2

=123456789*100

A1中,使用了长整数,执行任何整数计算,得到的结果都会是长整数。由于普通整数的取值范围是-231~231-1,即-2147483648~2147483647,因此A2中的结果实际上超出了整数的取值范围,为了避免这样的情况,整数相乘后的结果会变为长整数,即使计算结果并未超出整数的取值范围。计算后,A1A2中的结果如下:

 

如果是一系列的加减相乘等运算,在进行某一步运算时,当参与整数运算的操作数之一为长整数,结果就是长整数。

当表达式中的字符串里,存在"\等特殊字符时,需要在每个特殊字符之前添加一个转义符\用来标示:

 

A

1

="C:\\Program Files\\"+"Java"

2

="\"I can come today,\" she said, \"but not tomorrow.\""

A1A2中计算出的字符串如下:

 

在表达式中不能直接使用时间或者日期类型的常数,只能用类型转换函数date()time()datetime()将字符串或者长整数转换:

 

A

1

=interval@y(date("1944-6-6"),now())

A1中结果如下:

常数单元格

当把数据直接填写到单元格中时,如果单元格能将格串解释为一个常数,那么这个单元格被称为常数格,它的格值就是这个常数。

常数格的文字缺省会显示成粉色。根据格子中的数据,会解析为各种数据类型,如整数型,浮点数型,日期型等,如果无法理解,会把单元格中的格串解释为字符串。

如果在常数单元格中定义字符串,不必使用双引号。

另外,在常数单元格中,可以使用百分数的表示法,如5%

 

A

1

5%

2

=A1*1000

计算后,A1A2中的格值如下:

 

常数单元格A1中的5%会转换为相对应的浮点数值0.05。需要注意的是,5%这样的写法不能在表达式中使用,仅在常数格中有效

特别的,常数格中的值还可以是truefalse或者null

 

A

1

True

2

False

3

Null

这些常数在单元格中是保留字,注意大小写是敏感的!可以看到,此时常数格的值为字符串而不是对应的布尔值或空值:

   

 

A

1

true

2

false

3

null

如果需要定义的是布尔数或者空值,必须用小写字母,此时才能得到正确的值:

   

 

当需要指定单元格的格值为字符串时,可以使用字符串常数格,字符串常数格的格串是以英文单引号'开头的。字符串常数格常用来定义一些包含特殊字符的字符串,或者是数字组成的字符串等:

 

A

1

'abc\d

2

'1234.5

3

1234.5

其中A1中字符串常数格值为abc\dA2中值为字符串1234.5A3中值为数字1234.5,注意字符串显示时下方会有下划线,而默认字色也和数值不同:

   

使用字符串常数格时,如果字符串中存在特殊字符,不必添加转义符\

 

A

1

'C:\Program Files\Java

2

'"I can come today," she said, "but not tomorrow."

A1A2中字符串的值如下:

在常数单元格中,还可以定义序列常数,只需要用[]表示,序列的成员中间用,分隔。如:

 

A

1

[2,3,5,7,11]

2

[Gold,Silver,Bronze]

A1A2中的序列常数如下:

 

在定义序列常数时,序列中的字符串成员同样不必用双引号标明。

在表达式中,可以用单元格名称引用常数单元格:

 

A

1

1944-6-6

2

=interval@y(A1,now())

A2中结果如下:

常数单元格序列

在集算器中,当常数存储在多个单元格中之后,常用这些单元格构成常数序列,使用在表达式中。如:

 

A

B

C

D

E

F

1

1

2

4

8

16

32

2

=[A1:F1]

 

 

 

 

 

A2的表达式中[A1:F1],表示由A1~F1区域的所有单元格值构成的序列,结果如下:

序列中的单元格也可以在连续的一片区域中:

 

A

B

C

1

1

2

4

2

8

16

32

3

=[A1:C2]

 

 

A3的表达式中[A1:C2],表示从A1C2这一片区域的单元格值构成的序列,组成序列时,按照先行后列的顺序。A3中的结果如下:

在集算器中,还经常将一片常数单元格填入序表:

 

A

B

C

D

E

1

German

2

1

0

7

2

American

1

1

1

4

3

Portugal

1

1

1

4

4

GHana

0

1

2

1

5

=create(Team,W,D,L,Points)

 

 

 

 

6

>A5.record([A1:E4])

 

 

 

 

A5中,创建了一个新序表,并在A6中用record函数,将A1~E4区域中的常数单元格的值填入序表。A5中数据如下:

使用这种方法,可以用脚本文件存储表格数据。