请问,如何将一个float型的数值(如100.36)四舍五入?
谢谢!
谢谢!
解决方案 »
- 怎样使得stringgrid中的表头中的文字居中显示,而其后的数据靠左对齐,并小1号字?
- 如何开发类似瑞友天翼那样的程序
- WIN2000下打印quick rep自定义纸张报表
- SQL--DELPHI
- 替换的问题
- 关于动态创建计算字段落!200分进者有分
- 怎样用delphi 6中的Database Desktop为paradox 7数据表添加密码?
- MSComm,如何判断当前端口是否正在被占用或不可用?
- 请问报表中的数据必须从数据库中来吗?
- 如何把通过SQL查询统计后的结果(显示在DBGIRD中)用QREPORT实现打印预览及打印?不必太详细,讲一下用到的控件和思路即可。
- 关于窗体的问题
- 各位兄弟,在这里请教你们一个问题.
a:=100.36
round(strtofloat(a));
就ok了
var
BaseNum :Extended ;
begin
BaseNum := Power(10, APrec) ;
Result := Round(X * BaseNum + 5 / BaseNum) / BaseNum ;
end;
//标准四舍五入进位**************************************************************
//==============================================================================
function StanRoundTo(const AValue: Double; const ADigit: TRoundToRange = -2): Double;
var LFactor: Double;
begin
LFactor := IntPower(10, ADigit);
Result := (Trunc(AValue / LFactor) + IfThen(Frac(AValue / LFactor)>=0.4999, 1, 0)) * LFactor;
end;
//==============================================================================
//强制向上进位******************************************************************
//==============================================================================
function OverRoundTo(const AValue: Double; const ADigit: TRoundToRange = -2): Double;
var LFactor: Double;
begin
LFactor := IntPower(10, ADigit);
Result := (Trunc(AValue / LFactor) + IfThen(Frac(AValue / LFactor)>=0.0999, 1, 0)) * LFactor;
end;//==============================================================================
//强制向下进位******************************************************************
//==============================================================================
function DownRoundTo(const AValue: Double; const ADigit: TRoundToRange = -2): Double;
var LFactor: Double;
begin
LFactor := IntPower(10, ADigit);
Result := (Trunc(AValue / LFactor) + IfThen(Frac(AValue / LFactor)>=0.9999, 1, 0)) * LFactor;
end;