懂PASCAL的进来看看

来源:百度知道 编辑:UC知道 时间:2024/05/21 17:23:28
我在给别人做维护的时候有这样一个问题
要计算工资 取两位小数
我开始是这样子的
begin
工资:=round(底薪/26)*上班天数*100)/100;
end.
因为ROUND是四舍五入取双的吧。所以跟客户的要求不一样。。
后来我只能改成这样子
begin
工资壹:=trunc(底薪/26)*上班天数*1000);
工资贰:=trunc(底薪/26)*上班天数*100)*10;
if (工资壹-工资贰)>=5 then 工资:=工资贰+10
else 工资:=工资贰;
工资:=工资/1000;
end.
这样子算出来的跟客户的要求是一致的,保留两位小数。可是大家也看到了,这样子脚本很烦。如果有比较多的项目要计算我的脚本就很长了。能不能只用一句搞定呢?

没必要计算工资壹跟贰之间的误差,直接把工资的类型定义成real;
这样的话,就可以直接计算勒,算出勒小数,再输出,保留2位小数.
var
工资:real;

begin
工资:=底薪*上班天数/26
wrtie('工资',工资:0:2);
end.
这样应该就能解决你的问题勒把??呵呵

你的工资是什么类型的变量呀,应该是实数吧(real),那么可以不考虑保留两位小数的问题,直接按照本意进行计算,最后输出的时候只显示两位小数即可。

也就是计算语句为:(为了减少误差我先乘再除)
工资:=底薪*上班天数/26;

输出语句为:
write(工资:0.2);