一个四舍五入的函数
来源:互联网 发布:软件开发工程师报名 编辑:程序博客网 时间:2024/05/01 13:18
这是一个四舍五入的函数,具体用法 myround(1.999,2) = 2.00 第一位1.999为要四舍五入的数,2为要取的小数位。
欢迎大家测试探讨。QQ:81392790
function myround(const yuan: Extended; const pp: Integer): Extended;
//yuan:原浮点数,PP保留 小数点后第几位
var
p,l,m,l2:Longint;
s:string; // 原浮点数
sq:string; // 小数点前
sh:string;//小数点后
begin
if yuan=0 then exit;// 原浮点数 0
if pp<0 then exit; //非法小数点后第几位
s:=floattostr(yuan);
p:=pos('.',s); //小数点位置
sq:=midstr(s,1,p-1);
sh:=midstr(s,p+1,length(s)-length(sq)-1);
l:=length(sh);//小数位数
l2:=length(sq);//整数位数
if pp>=l then
begin//0
result:=strtofloat(s);
exit;//比如 11。06 要保留到 小数点后第3位显然 不合理
end;//
{ if pp=l then //比如 11。06 要保留到 小数点后第2位不用处理 直接返回
begin//1
Result:=s;
exit;
end;//1 }
if pp<l then //比如 11。06 要保留到 小数点后第1位 ,。。。
begin//2
m:=strtoint(sh[pp+1]);
if m>=5 then
begin
if pp>=1 then //保留到 小数点后第1,2。。。位
begin//3
sh:=midstr(sh,1,pp);
sh := inttostr(strtoint(sh)+1);
if length(sh)>pp then
begin
sh:= midstr(sh,2,pp);
sq:= inttostr(strtoint(sq)+1);
end;
Result:=strtofloat(sq+'.'+sh);
exit;
end//3
else //保留到 小数点后第0位
begin//4
sq[l2]:=chr(ord(sq[l2])+1);
Result:=strtofloat(sq);
exit;
end;//4
end
else
begin
if pp>=1 then //保留到 小数点后第1,2。。。位
begin//3
sh:=midstr(sh,1,pp);
Result:=strtofloat(sq+'.'+sh);
exit;
end//3
else //保留到 小数点后第0位
begin//4
Result:=strtofloat(sq);
exit;
end;//4
end;
end;//2
end;
- 一个四舍五入的函数
- 一个四舍五入的函数
- 一个四舍五入函数
- 一个函数,可以四舍五入到你指定的位数
- Delphi的四舍五入函数
- c#的四舍五入函数
- Delphi的四舍五入函数
- Delphi的四舍五入函数
- Delphi的四舍五入函数
- excel四舍五入的函数
- 四舍五入处理的函数
- Delphi的四舍五入函数
- C++的四舍五入函数
- Delphi的四舍五入函数
- js脚本的四舍五入函数
- JS中四舍五入的函数
- SQL的四舍五入ROUND函数
- mysql的四舍五入处理函数
- MySQL 如何从表中取出随机数据
- 创建一个纯CSS的水平导航条
- 如何用idFTP遍历整个目录----下载、删除
- MySQL 5.0 触发器
- CSS在IE和Nascape的显示差别
- 一个四舍五入的函数
- 利用CSS,不通过replace替换标引HTML标记
- 从数据库绘制MapX地图
- 让网页超链接拥有多姿多彩的下划线
- 《网络吸管》开发手记
- 对CSS类及id的规范化命名
- 字存为字符图片
- 利用css里expression来实现界面对象的批量控制
- MySQL常见错误问答!