如何实现四舍六入五单双?(以下均保留两位小数)
1.若5的后面有数字则舍去
如:23512->1.23
2.若5的后面没有数字则看5前面的数字是单数还是双数,若双数据则舍去,单数则进位
例如:1.245 -> 1.24,1.275 -> 1.28

解决方案 »

  1.   


    ceil()
    floor()
    两个函数
      

  2.   

    uses
      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;
      

  3.   

    helodd(可爱) :你这个不行啊,输入1.235得到的是1.5,不对的啊
      

  4.   

    if (aa-(floor(aa))>0)
             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);   <----不同的地方
      

  5.   

    helodd(可爱) :还是不行啊,现在输入1.235得到的是1,不对的啊?????
      

  6.   

    if (aa-(floor(aa))>0)
             and ((ceil(aa)-aa)>=0.4) then
              bb:=Floor(aa);        if (ceil(aa)-aa) <0.4 then
              bb:=Ceil(aa);
      

  7.   

    其实很简单:FormatFloat就可以实现
    下面是个例子我在D5上试过,不存在单双的问题
     Edit2.Text:=FormatFloat('0.00',StrToFloat(Edit1.Text))
      

  8.   

    Uses Math
    保留两位呀,前面看错啦。RoundTo(1.275,-2)试试吧。