如何实现四舍六入五单双?(以下均保留两位小数)
1.若5的后面有数字则舍去
如:23512->1.23
2.若5的后面没有数字则看5前面的数字是单数还是双数,若双数据则舍去,单数则进位
例如:1.245 -> 1.24,1.275 -> 1.28
1.若5的后面有数字则舍去
如:23512->1.23
2.若5的后面没有数字则看5前面的数字是单数还是双数,若双数据则舍去,单数则进位
例如:1.245 -> 1.24,1.275 -> 1.28
ceil()
floor()
两个函数
math......var
aa,bb:float;
begin ////0.1~0.5
if (aa-(floor(aa))>0)
and ((ceil(aa)-aa)>=0.5) then
bb:=Floor(aa)+0.5;
//0.6~0.9
if (ceil(aa)-aa) <0.5 then
bb:=Ceil(aa);
//0
if aa=Ceil(aa) then
bb:=aa;
and ((ceil(aa)-aa)>=0.5) then
bb:=Floor(aa)+0.5;改为
if (aa-(floor(aa))>0)
and ((ceil(aa)-aa)>=0.5) then
bb:=Floor(aa); <----不同的地方
and ((ceil(aa)-aa)>=0.4) then
bb:=Floor(aa); if (ceil(aa)-aa) <0.4 then
bb:=Ceil(aa);
下面是个例子我在D5上试过,不存在单双的问题
Edit2.Text:=FormatFloat('0.00',StrToFloat(Edit1.Text))
保留两位呀,前面看错啦。RoundTo(1.275,-2)试试吧。