我有一系列的Float数据,现在进行加减乘除运算,如何将得到的结果限定小数位数?多余位数进行4舍5入,结果仍然为Float类型?
这个看似简单的问题,使我十分头痛。

解决方案 »

  1.   

    先转成一字符串,按4舍5入处理后,转为FLOAT即可...(授人以鱼不如授人以渔)
      

  2.   

    可以考虑利用字符串,希望这贴子有点用!http://expert.csdn.net/Expert/TopicView2.asp?id=1079479
      

  3.   

    如果是精确到小数点后面两位,并四舍五入的话:
    FormatFloat('#0.00', a);
    其中a就是你最开始得到的结果。其他的以此类推就可以了。
      

  4.   

    假设原来的数为f, 你想留下小数点后n位。a := Round(f*(power(10,n))) / power(10,n);
      

  5.   

    另外,可以直接使用函数:RoundTo,这个函数跟一些设置有关系,需要注意一下。
    注意它的第二个参数,需要为负数。请看联机帮助。
      

  6.   

    function FormatFloat(const Format: string; Value: Extended): string;
    f:=1255423.5968;
    Str:=FormatFloat('0,0.000',f);
    结果Str=1,255,432.597
      

  7.   


       ShowMessage(FormatFloat('0,000.00',1234.456789)) ;