国产探花免费观看_亚洲丰满少妇自慰呻吟_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;
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 贡嘎县| 正宁县| 高尔夫| 彭州市| 南汇区| 冷水江市| 荔波县| 泸定县| 临潭县| 屏东县| 东城区| 台江县| 开平市| 湘乡市| 习水县| 安阳市| 白银市| 恩平市| 淳化县| 洛阳市| 梓潼县| 广西| 临澧县| 孟村| 台东县| 大名县| 乡宁县| 海兴县| 广宗县| 武功县| 义马市| 和硕县| 井研县| 扎兰屯市| 开江县| 靖江市| 屏山县| 鄄城县| 广宁县| 弋阳县| 宁海县|