2VFP表达式及应用.doc
文本预览下载声明
第2章 VFP表达式及应用
数据是程序加工处理的对象,并以某种特定的形式存在。在VFP中,各个数据的类型可能不同,不同数据类型决定了数据不同的存储方式与运算方法。表达式是运算符连接常数、变量和函数等构成的运算式。表达式作为命令的重要组成部分,主要完成各种计算任务。
2.1 数据类型与常数
常数是在命令或程序执行过程中保持不变的量,而变量则指其值可以变化的量。
2.1.1 数值型数据
数值型数据,即能参与算术运算的数据,由数字0~9、小数点与正负号组成,其数据类型用符号N表示。数值型数据在内存中占8个字节,能表示1~20位数据,整数在-6899999999999998至6899999999999998之间无误差;能表示的小数位数为0~19,小数位数≤15位(不含符号位)无误差。
数值型常数是整数或实数,如:23、-153和123.48,也可以用科学计数法表示数值型数据,如:用2.34e+4表示2.34×104,即23400。
2.1.2 字符型数据
字符型数据是英文字母、汉字或数字等符号组成的一串字符,其数据类型用符号C表示。一个字符型数据最多可字符组成,半角英文字符占一个字节,一个汉字或全角字符占两个字节。
字符型常数也称为字符串,是用定界符括起来的一串字符。定界符可以是半角的单引号、双引号或方括号,必须成对使用。如:’我是学生’、”I Study VFP”和[男]都是字符型常数。定界符本身不作为字符型常数的内容,当某种定界符是字符串中的内容时,必须用另一种定界符作为标志,如:’老师说:”明天交作业 ”’和[“Windows”操作]。
字符串长度是指字符串中所含字符的个数(1个半角字符长度为1,1个汉字或全角字符长度为2)。如:字符串常数”说:What”的长度为9。
2.1.3 货币型数据
货币型数据作为一种特殊的数值型数据,用来表示货币值。其数据类型用符号Y表示。货币型常数是在数值前加货币符号$,如:$12.34。
货币型常数在存储和计算时,系统自动保留4位小数,小数多于4位时四舍五入。如:$123.456789将自动存储为$123.4568。货币型数据在内存中占8个字节,取值范围为-922337203685477.5807~922337203685477.5807。
与数值型数据不同,货币型常数不能用科学计数法表示。
2.1.4 日期型数据
日期型数据可表示某一个日期。数据类型用符号D表示,占8个字节,取值范围为:0001年1月1日~9999年12月31日。
日期型常数用一对大括号“{ }”括起来,其中包含年、月、日三部分内容,各部分内容之间可以用斜杠(/)、连字号(-)、小数点(.)或空格等进行分隔。
1. 设置传统/严格日期格式
日期型常数有传统和严格两种格式。传统的默认格式是美语日期格式{ mm/dd/yy}。传统格式受命令Set Date 和Set Century的影响。不同设置状态,VFP对同一个日期型常数的解释不一样。 如:对日期型常数{08/10/01},VFP可能认为是2008年10月1日或2001年8月10日。
严格日期格式为{^yyyy-mm-dd}或{^yyyy/mm/dd}。用符号“^”作为严格日期常数的开始符号,年月日的次序不能改变,年份必须为4位,它不受命令Set Date和Set Century命令的影响,在任何情况下都表示唯一确切的日期。两种日期常数格式可通过命令进行设置:
命令格式:Set Strictdate To 0|1
命令说明:设置传统日期格式(0)或严格日期格式(1)。
【 例2.1 】
Set Strictdate To 0 设置成传统日期格式
Set Date Ansi
Set Century On
X={07.10.01} X赋值成:2007年10月1日
? X 输出结果为:2007.10.01
Set Strictdate To 1 设置成严格日期格式
Y={^2008/10/01} Y赋值成:2008年10月1日
? Y 输出结果为:2008.10.01
2. 设置日期分隔符
命令格式:Set Mark To 字符表达式
命令说明:设置显示日期时的分隔符。字符表达式值中的首字符为分隔符。若省略字符表达式,则恢复系统默认的分隔符。
【 例 2.2 】
Set Date ANSI
Set Century On
Set Mark To “–”
? {^2007/10/01} 输出结果为:2007-10-01
Set Mark To [.]
? {^2007/
显示全部