紧急求救!!!!!!!!!!(50分)

  • 主题发起人 主题发起人 supershan
  • 开始时间 开始时间
S

supershan

Unregistered / Unconfirmed
GUEST, unregistred user!
问题一:在delphi中保留两位小数的函数是什么?并且可进行四舍五入

问题二:数据库为ACCESS,有三个字段,数量、单价、金额,输入数量与单价后自动计算出金额,单价与金额为货币型字段。但是在输入中,如数量输入10,单价输入1.2345,则金额算为12.34。由于自动保留两位小数所以界面上表现为数量10,单价1.23,
金额12.34,这样给人以一种计算不等的感觉。而在数据库中就更可怕了,数据库中数量为10,单价为1.2345,金额却为12.3449.

请问上述问题二如何解决?
1。如怎么控制在DBGRID中只能输入两位小数
2。如怎么在数据库中输入单价后自动保留两位。
其中我已在ACCESS数据库中进行了小数位设置,但还无济于事。我想这个问题是普遍存在的,希望高手指点?
 
一· round(y*100)/100 或用 format;

 
我也很想知道。
 
使用MONEY型不是很好吗?
 
DBGRID只读,在EDIT或MASKEDIT中输入,用DBEDIT连关键字并在其
ONCHANGE中写显示EDIT或MASKEDIT数据的代码.
这样行吗?
 
用formatfloat函数,应该是四舍五入的,
 
一: 可以先化为字符串再做

function myround(r: real;digit: integer): real;
var
s, s1: string;
begin
s := floattostr(r);
if s[pos('.', s) + digit + 1] >= '5' then
s1 := copy(s, 1, pos('.', s) + digit - 1) + inc(s[pos('.', s) + digit])
else
s1 := copy(s, 1, pos('.', s) + digit);
result := strtofloat(s1);
end;

应用:
r1 := 25.3754;
r1 := myround(r1, 2);//保留两位
//r1 = 25.38

随手写的,没有检查
 
多人接受答案了。
 
后退
顶部