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

首頁 > 開發 > 綜合 > 正文

在業務系統中處理小數精度, 四舍五入,全舍棄,全進位的方法

2024-07-21 02:05:41
字體:
來源:轉載
供稿:網友

在業務系統中,不同的客戶對小數的處理有不同的方法

通過在設置保留的小數位數,以及小數位數以后的尾數的處理方法,可以靈活的滿足客戶要求

處理方法表

 id number(1)    ,                                                       --設置id

amountdot      number(4,2) default 0.01,  --金額精確度 1: 精確到元  0.1:精確到角  0.01:精確到分rounding       number(1) ,                                  --舍入分界  -- 9: 全舍  0: 全入  4:四舍5入   

建立oracle函數,傳入設置id,傳入金額,返回處理過的金額

存儲過程實現代碼如下

create or replace function get_real_number (  --根據處理方法id,取得處理后的金額-計算的金額            id in number, -- 處理方法id            n_amount in number)       -----------------------------------------------------------------------  --  用  途   自定義數據精度處理。  --  創建者  :andrew  -----------------------------------------------------------------------  --  修改記錄列表:(按日期的先后順序逆序排列)  --  修改時間     修改人      實現的功能說明   -- 9 全舍  0 全入  4四舍5入    -----------------------------------------------------------------------return number-- 返回的金額is       v_amountdot varchar2(5);      --小數位數字符       v_keep      number ;          --保留的小數位數       v_rounding  number ;        --舍入分界       v_amount number:=0 ;         --返回的金額begin

     select  amountdot,  nvl(rounding,0) into v_amountdot,v_rounding from  處理方法表             where id = sale_place_id;     v_keep := length(v_amountdot) -  instr(v_amountdot,'.') ;  --要保留的小數位數     if v_rounding = 9 then   --處理全舍棄        v_amount := trunc(n_amount,v_keep);     end if;          if v_rounding = 4 then    --處理四舍五入        v_amount := round(n_amount,v_keep);     end if;          if v_rounding = 0 then  --處理全進位            v_amount := trunc(n_amount,v_keep);   --小數為數剛好等于要求保留的數           if v_amount <> n_amount then   --如果截取后的數與原來的數字不同,進1           v_amount := v_amount + to_number(v_amountdot);     end if;     return v_amount;

     exception when others then return n_amount;                                            

end get_real_number;
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 浮山县| 岑溪市| 双桥区| 宜兴市| 电白县| 汉寿县| 吴江市| 西充县| 斗六市| 临武县| 林周县| 甘德县| 嘉峪关市| 临沭县| 方山县| 图片| 桑植县| 黑水县| 汝城县| 滨海县| 屏边| 古蔺县| 揭东县| 德昌县| 祥云县| 治县。| 抚州市| 峨眉山市| 阳春市| 饶平县| 虹口区| 手游| 合作市| 芜湖县| 黔西县| 通江县| 芮城县| 镶黄旗| 桂阳县| 岫岩| 瓦房店市|