procedure TForm1.Button12Click(Sender: TObject);
var vf:Double;
vi64:Integer;
begin
// vf := strtofloatdef(edit1.Text,0);
vf := 2.01;
vf := vf * 1000;
vi64 := Trunc(vf);
showmessagefmt('%D',[vi64]);
end;大家帮忙运行上面的代码,给个方法解决这个问题?
我本意是想取一个有3位小数的浮点数,结果不正确,如何解?
var vf:Double;
vi64:Integer;
begin
// vf := strtofloatdef(edit1.Text,0);
vf := 2.01;
vf := vf * 1000;
vi64 := Trunc(vf);
showmessagefmt('%D',[vi64]);
end;大家帮忙运行上面的代码,给个方法解决这个问题?
我本意是想取一个有3位小数的浮点数,结果不正确,如何解?
解决方案 »
- 库存成本算法(提提建议)
- delphi 如何像制定的Http链接提交,并返回数据
- 用ADO控件连接ACCESS数据库,设置2个日期型字段,一个是短日期,另一个是长日期,为什么用dbgrid控件显示的时候都为短日期的记录了?
- 如何定位数据指针,比如我新增一条记录,或者删除记录后,想定位指针大某个位置,ado的
- 小问题:大家快来看看,马上结帐
- 急!!有什么方式能在delphi中获取到的系统时间让它显示
- 给手机发短信
- 请教各位如何在Delphi中调用foxmail发送邮件?(要加附件)谢谢。在线恭侯!
- 怎样判断打开文件对话框是否选择了文件,
- 谁能告诉我把SQL server的一个image字段通过一个ADOQuery的SQL语句读到一个TblobStream中的方法,我给出全部的分!
- delphi ADOQuer 数据库连接老报错。。。
- 请教TMemoryStream用法
vf:single;
//vi64:Integer;
begin
// vf := strtofloatdef(edit1.Text,0);
// vf := 2.01;
vf := 2.01 * 1000;
//vi64 := Trunc(vf);
showmessagefmt('%.3f',[vf]);
我不是要显示数字的意思,又不想把浮点数化到字符串,再把字符串化到整数,想直接从数字运算中得到var vss:String;
vf:double;
vii:Integer;
begin
vf := 2.01 * 1000;
vss := format('%.0f',[vf]); // 不想用此二行的转化方法
vii := strtointdef(vss,0); // 不想用此二行的转化方法
showmessagefmt('%D',[vii]);
end;
s:string;
begin
vf := 2.01;
s:=format('%6.3f ',[vf]);
showmessage(s);
end;
f: integer;
begin
f:=trunc(2.01 * 1000);
showmessagefmt('%d',[f]);
end;
而再转换成10进制去计算时,就会变成2.009999999999这样子了
begin
if pNum >= 0 then Result := Trunc(pNum + pAberration)
else Result := Trunc(pNum - pAberration);
end;用以上的方法,在不影响返回值的使用环境下,加个适当的偏差,经过测试,发现效果似乎不错。
比如对于像素、金额来说,加上0.000001应该是没问题的。