t:= strtoint(FormatFloat(''''#'''',value)); end;
function doRound(Value: Double): integer; //取整四舍五入 //这个我有一半,呵呵。 begin if Value < 0 then Result:= - doRound( -Value ) else Result := round(int((value + 0.5) * 10)) div 10; end; //当然,这个函数还有其他的写法,如果你有不同的思路欢迎继续。。。
补充说明: round这个函数本身采用的是“四舍六入五成双”的法则,虽然更科学,但是实际应用中没有几个用这种规则的。 我也贴几个自己常用的: {----------------------------------------------------------------------------- 过程名: Msg 作者: Gongqin 日期: 2003-6-9 16:57:44 参数: AMsg : String; ATitle : String=''''提示''''; AType : byte=0; btn : Longint=0 AType := 1 显示"信息"图标 2 显示"错误"图标 AMsg(显示的消息内容) ATitle(显示标题) btn := 0 显示 OK 1 显示 Ok Cancel 2 显示 Yes No 3 显示 Retry and Cancel 4 显示 Abort, Retry, and Ignore 返回值: Integer 说明: 显示消息对话框 -----------------------------------------------------------------------------} function Msg(AMsg: String;ATitle: String;AType: byte;btn: Longint): Integer; var Flag : Longint; begin case AType of 1: Flag := MB_ICONQUESTION; //提问 2: Flag := MB_ICONERROR; //Error 3: Flag := MB_ICONSTOP; //Stop else Flag := MB_ICONWARNING; end; case btn of 0 : Flag := Flag + MB_OK; 1 : Flag := Flag + MB_OKCANCEL; 2 : Flag := Flag + MB_YESNO; 3 : Flag := Flag + MB_YESNOCANCEL; 4 : Flag := Flag + MB_RETRYCANCEL; 5 : Flag := Flag + MB_ABORTRETRYIGNORE; end; result := Application.MessageBox(pchar(AMsg), pchar(ATitle), Flag); end;
{----------------------------------------------------------------------------- 过程名: getAppPath 作者: Gongqin 日期: 2003-6-9 17:01:17 参数: None 返回值: string 说明: 取应用程序的路径 如果只用ExtractFilePath(ExtractFilePath(application.Exename))取路径 可能出错,所以加了处理 -----------------------------------------------------------------------------} function getAppPath : string; var strTmp : string; begin strTmp := ExtractFilePath(ExtractFilePath(application.Exename)); if strTmp[length(strTmp)] <> ''''\'''' then strTmp := strTmp + ''''\''''; result := strTmp; end; 下面是我自己整理的 http://www.myf1.net/bbs/dispbbs.asp?boardID=5&ID=215239 //计算当前日期所在的季度的第一个月份和最后一个月份 //终极版 function QuarterBegin( TheDate : TDateTime = 0 ) : Integer; //Copy Right 549@18:25 2003-9-3 begin Result := ( Quarter( TheDate ) - 1 ) * 3 + 1; end;
function QuarterEnd( TheDate : TDateTime = 0 ) : Integer; //Copy Right 549@18:25 2003-9-3 begin Result := ( Quarter( TheDate ) - 1 ) * 3 + 3; end;
function Quarter( TheDate : TDateTime = 0 ) : Integer; //Copy Right 549@10:06 2003-9-5 begin Result := MonthOf( TheDate ); if TheDate = 0 then Result := MonthOf( Date ); Result := ( Result + 2 ) div 3; end;
上一页 [1] [2] [3] |