在使用集算器计算时,经常会用到常数,有时还会直接把数据存储在网格中。在这里,我们来了解一下集算器中常数的使用。
在集算器的表达式中,可以直接使用常数:
|
A |
1 |
=64-32 |
2 |
=round(1.45*5.5) |
3 |
=isupper("Tom Sawyer") |
在表达式中使用常数时,整数或浮点数可以直接使用,字符串则需要用双引号""括起来,布尔型的常数true和false也可以直接用在表达式中,但是使用的机会比较少。A1,A2和A3的结果分别如下:
特别的,可以在整数后面添加大写的L表示长整数,长整数与整数相比有更大的取值范围;还可以用0x开头的串来表示十六进制的长整数:
|
A |
1 |
=123456789L-100 |
2 |
=123456789*100 |
A1中,使用了长整数,执行任何整数计算,得到的结果都会是长整数。由于普通整数的取值范围是-231~231-1,即-2147483648~2147483647,因此A2中的结果实际上超出了整数的取值范围,为了避免这样的情况,整数相乘后的结果会变为长整数,即使计算结果并未超出整数的取值范围;与此类似,整数相加时,结果也会变为长整数。计算后,A1,A2中的结果如下:
如果是一系列的加减相乘等运算,在进行某一步运算时,当参与整数运算的操作数之一为长整数,结果就是长整数,使用默认设置时,长整数和整数显示时的颜色是不同的。
当表达式中的字符串里,存在"和\等特殊字符时,需要在每个特殊字符之前添加一个转义符\用来标示:
|
A |
1 |
="C:\\Program Files\\"+"Java" |
2 |
="\"I can come today,\" she said, \"but not tomorrow.\"" |
A1与A2中计算出的字符串如下:
在表达式中不能直接使用时间或者日期类型的常数,只能用类型转换函数date(),time()和datetime()将字符串或者长整数转换:
|
A |
1 |
=interval@y(date("1944-6-6"),now()) |
A1中结果如下:
当把数据直接填写到单元格中时,如果单元格能将格串解释为一个常数,那么这个单元格被称为常数格,它的格值就是这个常数。
常数格的文字缺省会显示成粉色。根据格子中的数据,会解析为各种数据类型,如整数型,浮点数型,日期型等,如果无法理解,会把单元格中的格串解释为字符串。
如果在常数单元格中定义字符串,不必使用双引号。
另外,在常数单元格中,可以使用百分数的表示法,如5%:
|
A |
1 |
5% |
2 |
=A1*1000 |
计算后,A1与A2中的格值如下:
常数单元格A1中的5%会转换为相对应的浮点数值0.05。需要注意的是,5%这样的写法不能在表达式中使用,仅在常数格中有效。
特别的,常数格中的值还可以是true,false或者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\d,A2中值为字符串1234.5,A3中值为数字1234.5,注意字符串显示时下方会有下划线,而默认字色也和数值不同:
使用字符串常数格时,如果字符串中存在特殊字符,不必添加转义符\:
|
A |
1 |
'C:\Program Files\Java |
2 |
'"I can come today," she said, "but not tomorrow." |
A1与A2中字符串的值如下:
在常数单元格中,还可以定义序列常数,只需要用[]表示,序列的成员中间用,分隔。如:
|
A |
1 |
[2,3,5,7,11] |
2 |
[Gold,Silver,Bronze] |
A1与A2中的序列常数如下:
在定义序列常数时,序列中的字符串成员同样不必用双引号标明。
在表达式中,可以用单元格名称引用常数单元格:
|
A |
1 |
1945-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],表示从A1到C2这一片区域的单元格值构成的序列,组成序列时,按照先行后列的顺序。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中数据如下:
使用这种方法,可以用脚本文件存储表格数据。