国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發(fā)設計 > 正文

一個四舍五入的函數(shù)

2019-11-18 18:23:56
字體:
來源:轉載
供稿:網(wǎng)友

這是一個四舍五入的函數(shù),具體用法 myround(1.999,2) = 2.00 第一位1.999為要四舍五入的數(shù),2為要取的小數(shù)位。

歡迎大家測試探討。QQ:81392790

function myround(const yuan: Extended; const pp: Integer): Extended;
//yuan:原浮點數(shù),PP保留 小數(shù)點后第幾位
var
 p,l,m,l2:Longint;
 s:string; // 原浮點數(shù)
 sq:string; // 小數(shù)點前
 sh:string;//小數(shù)點后
begin
 if yuan=0 then exit;// 原浮點數(shù) 0
 if pp<0 then exit; //非法小數(shù)點后第幾位
 s:=floattostr(yuan);
 p:=pos('.',s);   //小數(shù)點位置
 sq:=midstr(s,1,p-1);
 sh:=midstr(s,p+1,length(s)-length(sq)-1);
 l:=length(sh);//小數(shù)位數(shù)
 l2:=length(sq);//整數(shù)位數(shù)
 if pp>=l then
  begin//0
   result:=strtofloat(s);
   exit;//比如 11。06 要保留到 小數(shù)點后第3位顯然 不合理
  end;//
{ if pp=l then  //比如 11。06 要保留到 小數(shù)點后第2位不用處理 直接返回
   begin//1
     Result:=s;
     exit;
   end;//1 }
  if pp<l then //比如 11。06 要保留到 小數(shù)點后第1位 ,。。。
  begin//2
    m:=strtoint(sh[pp+1]);
    if m>=5 then
    begin
      if pp>=1 then //保留到 小數(shù)點后第1,2。。。位
      begin//3
       sh:=midstr(sh,1,pp);
       sh := inttostr(strtoint(sh)+1);
       if length(sh)>pp then
       begin
          sh:= midstr(sh,2,pp);
          sq:= inttostr(strtoint(sq)+1);
       end;
      Result:=strtofloat(sq+'.'+sh);
      exit;
      end//3
      else  //保留到 小數(shù)點后第0位
      begin//4
       sq[l2]:=chr(ord(sq[l2])+1);
       Result:=strtofloat(sq);
       exit;
      end;//4
    end
    else
    begin
      if pp>=1 then //保留到 小數(shù)點后第1,2。。。位
      begin//3
       sh:=midstr(sh,1,pp);
       Result:=strtofloat(sq+'.'+sh);
      exit;
      end//3
      else  //保留到 小數(shù)點后第0位
      begin//4
       Result:=strtofloat(sq);
       exit;
      end;//4
    end;
  end;//2
end;


上一篇:事件的危機——調試手記之一

下一篇:我寫的采用csv格式將數(shù)據(jù)轉換為excel的函數(shù),帶有分欄功能

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
學習交流
熱門圖片

新聞熱點

疑難解答

圖片精選

網(wǎng)友關注

主站蜘蛛池模板: 丹凤县| 昌图县| 阳城县| 交口县| 酉阳| 安顺市| 阿拉善左旗| 侯马市| 南平市| 淄博市| 大田县| 焉耆| 徐水县| 东乌珠穆沁旗| 隆昌县| 保定市| 巴南区| 洛南县| 阜平县| 樟树市| 榆中县| 甘德县| 阳信县| 巨野县| 沧州市| 和龙市| 寿宁县| 玛纳斯县| 永善县| 新余市| 边坝县| 桃江县| 香格里拉县| 镇江市| 加查县| 湖北省| 静宁县| 湖南省| 颍上县| 高密市| 理塘县|