这里有一段代码:
procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
begin
i:=strtoint(copy(floattostr(frac(strtofloat(edit1.Text))),3,1));
showmessage(inttostr(i));
end;作用是将edit中输入的实数的小数部分取出然后将其转换成整数
现在有一个问题:如果在edit1中输入1000000000.8得到的结果是7而不是8,这是为什么?
procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
begin
i:=strtoint(copy(floattostr(frac(strtofloat(edit1.Text))),3,1));
showmessage(inttostr(i));
end;作用是将edit中输入的实数的小数部分取出然后将其转换成整数
现在有一个问题:如果在edit1中输入1000000000.8得到的结果是7而不是8,这是为什么?
解决方案 »
- Delphi7中编译器错误?(非弱智问题)
- 分有的是,到底谁能说清楚Delphi开发ActiveX的参数问题???
- 救命啊,在线等!!!
- ACCESS有密码为"1",我用ADO连接用户名写"Admin",密码填“1”怎么会出现这样的错?
- 汇报一下我和我见的mm的情况
- 大虾们进来看看~!!~~
- DELPHI中如何实现P2P?
- 高分寻求做智能卡要用到Delphi、数据库中的哪些技术或其他相关技术均可,回答均有分
- 关于Form的简单抢分问题,请一定来看看!
- Delphi RTSP视频传输及播放程序设计
- 很简单,borlandC++转delphi
- 用过bass库的看过来:这个BASS_DSHOW插件为什么出错?
你这个方法很好,学习了。
只是edit中输入的数不能确定是整数还是小数
如果当前数取正 - 本身 = 0 就是整数。
function IsZhengshu(const Value: Extended): boolean;
begin
result := Trunc(Value) - Value = 0;
end;
建议改成这样:function IsZhengshu(const Value: Extended): boolean;
begin
Result := Abs(Trunc(Value) - Value) < 1E-12;
end;
分割
end else
showmessage('整數');