Delphi中取整函数Round的Bug解决
Delphi中 Round函数有个Bug
一旦参数是形如 XXX.5这样的数时
如果 XXX 是奇数 那么就会 Round up
如果 XXX 是偶数 那么就会 Round down
例如 Round(17.5)=18
但是 Round(12.5)=12
下面的函数即可纠正这个 Bug 但是是临时性的
执行 DoRound(12.5) 结果为 13 正确
function DoRound(Value: Extended): Int64;
procedure Set8087CW(NewCW: Word);
asm
MOV Default8087CW,AX
FNCLEX
FLDCW Default8087CW
end;
const
RoundUpCW = $1B32;
var
OldCW : Word;
begin
OldCW := Default8087CW;
try
Set8087CW(RoundUpCW);
Result := Round(Value);
finally
Set8087CW(OldCW);
end;
end;
相关文档:
//声明:
GetWindowText(
hWnd: HWND; {窗口句柄}
lpString: PChar; {接收文本的缓冲区的指针}
nMaxCount: Integer {指定缓冲区大小, 其中包含NULL字符; 如果文本超出,会被被截断}
): Integer; {返回字符个数, 不包括中断的空字符; 如果标题为空或句柄无效, 则返回零}
//举例:
var
arr: ......
*类的公开属性(代码)
示例:访问类的published属性
说明:vmtFieldTable(Published Field表)指向Published Field表有序排列,只存储当前类的PublishedField表,得到父类的Published Field表需要往上遍历。
注意:只有类型是类或接口的数据成员才可定义为published的访问级别
代码:
type
TMyO ......
本书通过典型的实例,系统地介绍了Delphi典型组件的基本使用方法和一些使用技巧。每一个实例都提供了程序的源代码、操作步骤,并且在一些特殊的实例中注明了知识点。力争使读者通过阅读实例后,可以较好地掌握每一个知识点。 本书分为五章,内容由浅入深、循序渐进,适用于初级用户和院校师生学习参考。 下载阅读边用边学D ......
1、 放一下memo控件、一个button、opendialog
在button的click事件中
if opendialog1.Execute then
memo1.Lines.LoadfromFile(opendialog1.filename);
2、滥简单的事啊
var
Mytxt : TStringList;
begin
MyText :=
TStringList('你的文本文件及路径');
&nbs ......
之前做一个程序,用ListBox读入一个文本文件,但文本中有空行,为了删除其中的空行,折腾了好长时间。
先给出一段代码给大家看
var
i:Integer;
begin
ListBox1.Items.LoadfromFile('data.txt');
for i:=0 to ListBox1.Count - 1 do
begin
  ......