关于函数转换时出现一怪事? format('%2.0f',12.34)'%2.0f'可以跟据需要修改. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 round本来是四舍五入的但是不知道为什么round(0.5)=0大概是bugtrunc 是取整函数 你可以把round函数替换为: function round_hss(const x:Extended):Extended; begin if x>=0 then result:=trunc(x+0.5) else result:=trunc(x-0.5); end; Delphi6 中round 函数实现为:asm { -> FST(0) Extended argument } { <- EDX:EAX Result } SUB ESP,8 FISTP qword ptr [ESP] FWAIT POP EAX POP EDXend;这是因为 FISTP 执行四舍五入时是按RC场的值来决定的 RC=00 向最近偶数取整 RC=01 向下取整 RC=10 向上取整 RC=11 向零取整 发生以上错误只是由于这时 RC=00 求海康威视4004HC的录像源码 请教多线程处理问题,急! 如果用DBEDIT组件先数据库中添加数据~在线等~ACCESS2003~ 如何获得当前正在执行文件的文件名 关于代码--名称 100分求问关于编流水号的简单问题!!! 紧急求教!! 关于DBGIRD控件,100求助!在线给分。 如果从一个tBitmap复制区一个区域到另一个tBitmap类? 各位高手请问谁知道像“Window 优化大师”那样的提示信息怎么做? 请教api hook技术! delphi的ado组件支持分页吗?
但是不知道为什么round(0.5)=0
大概是bug
trunc 是取整函数
begin
if x>=0 then
result:=trunc(x+0.5)
else
result:=trunc(x-0.5);
end;
asm
{ -> FST(0) Extended argument }
{ <- EDX:EAX Result } SUB ESP,8
FISTP qword ptr [ESP]
FWAIT
POP EAX
POP EDX
end;这是因为 FISTP 执行四舍五入时是按RC场的值来决定的
RC=00 向最近偶数取整
RC=01 向下取整
RC=10 向上取整
RC=11 向零取整 发生以上错误只是由于这时 RC=00