摘要:
现介绍一种截取子字符串累加的计算方法。这种方法用于C-DBASEI数据库编写的工资程序中。从运行情况看,效果很好。这是由于,第一,计算机进行数据算术运算的速度为:加减运算最快,其次为乘,除,指数。第二,DBASEI是用二进制浮点表示法存放数值的,按存放格式要求,某些数的尾数需移动,因此,浮点乘除运算会有误差。截取子字符串不涉及浮点乘除运算。所以,这种计算方法速度快,没有误差,符合工资发放要求。
具体做法是:先将工资库记录中的实发数由数值型数据转换为字符型数据,再按位数截取子字符串,并把截取的子串转换为数值型数据存入变量。如:实发数为128.61元,可转换为6位字符型数据(小数点算1位),前2位为10元票张数,由第3位确定5元和1元票张数,第5位确定5角和1角票的张数,第6位确定5分和1分的数量。将各票值数量分别存入变量,在处理每条记录的同时,各变量数值不断累加,最后汇总出本部门所需要的各种票额数。(程序附后)
该程序只统计了10元、5元、1元、5角、1角、5分和1分的钞票。如需要分得再细一些,其方法是同样的。此程序可单独运行,也可编入出表或计算模块中运行。
现介绍一种截取子字符串累加的计算方法。这种方法用于C-DBASEI数据库编写的工资程序中。从运行情况看,效果很好。这是由于,第一,计算机进行数据算术运算的速度为:加减运算最快,其次为乘,除,指数。第二,DBASEI是用二进制浮点表示法存放数值的,按存放格式要求,某些数的尾数需移动,因此,浮点乘除运算会有误差。截取子字符串不涉及浮点乘除运算。所以,这种计算方法速度快,没有误差,符合工资发放要求。
具体做法是:先将工资库记录中的实发数由数值型数据转换为字符型数据,再按位数截取子字符串,并把截取的子串转换为数值型数据存入变量。如:实发数为128.61元,可转换为6位字符型数据(小数点算1位),前2位为10元票张数,由第3位确定5元和1元票张数,第5位确定5角和1角票的张数,第6位确定5分和1分的数量。将各票值数量分别存入变量,在处理每条记录的同时,各变量数值不断累加,最后汇总出本部门所需要的各种票额数。(程序附后)
该程序只统计了10元、5元、1元、5角、1角、5分和1分的钞票。如需要分得再细一些,其方法是同样的。此程序可单独运行,也可编入出表或计算模块中运行。