小问题,四舍五入,急!!!200分,帮忙者都有分。(200分)

  • 主题发起人 主题发起人 zhugenan
  • 开始时间 开始时间
在D6的Math单元中有一个新函数:RounfTo( ),完全满足你的需要!
 
你用什么方法取数据?
你用tquery吗?
如果用这个,你可以在tquery里限制字段显示的.
 
如果在Oracle中将该字段的数据类型改为NUMBER(长度,小数点位数),其它数据库中自己查找
 
在Update语句中好象Where子句是不能缺少的吧??
建议你设置一个Double变量
如:
Var
D:Double;
Begin
//Select语句,用来查找出想修改的记录
D:=Qry.FieldByname('gzf13').AsFloat-Qry.FieldByname('gzf11').AsFloat
-Qry.FieldByname('gzf4').AsFloat-Qry.FieldByname('gzf7').AsFloat;
with qry do
begin
close;
sql.Clear ;
sql.Add ('update gzlsgo set gzf13=:DD,gzf15=:EE Where 条件');//条件不可少
ParamByName('DD').AsFloat:=D;
ParamByName('EE').AsFloat:=D;
execsql;
close;
end;
End;

End;
 
round() 可搞定
 
只把它变成5简单,你是不是有时要表示整数,有时要表示浮点数?
 
SS2000说得不错,,你的数据类型要根据需要来定义,,不要原本用整型的,你用浮点的来
做,虽然在某些情况下可以用,但总不太严谨吧?
 
你们不是吧,一个问题说这么久.搞得我的邮箱满是费话.
快点结束吧.
 
[blue][/blue][^]
用FormatFloat(value,#.##)函数很简单、轻松地就解决了。其它方法,是事倍功半。
使用灵活、格式任意定义。
 
round()
format()
 
同意coolzew,以前也碰过此类问题。
 
你用format函数,在DBGRID1的onDRAWCELL的事件处处理

 
function myround(s:real;non:integer):real;
var
roundi:integer;
j:double;
begin
j:=s;
for roundi:=10 downto non do
begin
j:=j+1/power(10,roundi+2);
j:=roundto(j,-roundi);
end;
result:=j;
end;
 
多人接受答案了。
 
后退
顶部