请问,如何将Double类型的数据取整,并将其转换成integer型

wt_sanlian 2003-09-18 11:44:48

var
a :double;
b:double;
c : integer;
begin
a := 12.3;
b := 11.6;

c := integer(a) - integer(b) ; 我期望的结果是整数 1,但编译器不同意


请问各路高手,如何解决这个问题?
...全文
468 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
newnewworm 2003-09-18
  • 打赏
  • 举报
回复
trunc()去掉后面小数位!
江山易改 2003-09-18
  • 打赏
  • 举报
回复
var a,b : Double ;
C : integer ;
begin
a:=12.3 ;
b:=11.6 ;
c := StrToint(Copy( Format('%12.2f',[a]),1,Pos('.',Format('%12.2f',[a]))-1))
- StrToint(Copy( Format('%12.2f',[b]),1,Pos('.',Format('%12.2f',[b]))-1)) ;
end;
mxk19791116 2003-09-18
  • 打赏
  • 举报
回复
来看看这个吧,一定对

procedure TForm1.Button2Click(Sender: TObject);

var
a :double;
b:double;
c : integer;
begin
a := 12.3;
b := 11.6;
c := Trunc(a)-Trunc(b);
showmessage(inttostr(c));

end;
popmailzjw 2003-09-18
  • 打赏
  • 举报
回复
不会有问题的
wt_sanlian 2003-09-18
  • 打赏
  • 举报
回复
谢谢
linuxyf 2003-09-18
  • 打赏
  • 举报
回复
用trunc()函数,不能用round(),trunc截去小数点后面的,round四舍五入。
wt_sanlian 2003-09-18
  • 打赏
  • 举报
回复

Integer 是32位,而trunc 是64位,会不会有影响?
fenglaile 2003-09-18
  • 打赏
  • 举报
回复
Little2000(Rainy)的方法正确,来晚一步
aiirii 2003-09-18
  • 打赏
  • 举报
回复
用 Trunc;
function Trunc(X: Extended): Int64;
fansnaf 2003-09-18
  • 打赏
  • 举报
回复
showmessage(inttostr(round(i)-round(j)));
Little2000 2003-09-18
  • 打赏
  • 举报
回复
c := Trunc(a)-Trunc(b);

5,392

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧