度量快速开发平台-专业、快速的软件定制快开平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 部件 流程 SQL
查看: 1599|回复: 1
打印 上一主题 下一主题

[分享] REMAINDER函数:四舍六入五取偶

[复制链接]

542

主题

5916

帖子

1万

积分

作者

Rank: 7Rank: 7Rank: 7

积分
13589
跳转到指定楼层
楼主
发表于 2020-2-3 15:07:21 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
REMAINDER m-(m/n)*n ; (m/n)4舍6入,5取偶。当(m/n)为x.5的时候,取最接近m/n的偶数

下面为验证代码:
declare
  num1 number;
  num2 number:=&4;
  out1 number:=1;
  out2 number:=3;
  i    number;
  erro exception;
begin
  i:=1;
  while i<=10000 loop
    i:=i+1;
    num1:=i;
    SELECT remainder(num1, num2) into out1
      FROM duaL;

    select num1 - (case
             when substr(col, instr(col, '.')) = '.5' and
                  mod(floor(col), 2) = 0 then
              floor(col)
             else
              round(col)
           end) * num2 into out2
      from (select num1 / num2 col from dual);

    if  nvl(out1,'1')<>nvl(out2,'2') then
      raise erro;
    end if;

  end loop;
  DBMS_OUTPUT.put_line ( num1||'-'||num2||'-'||out1||'-'||out2);
exception
  when erro then

   raise_application_error(-20000,num1||'-'||num2||'-'||out1||'-'||out2,TRUE);
   RAISE;
  when others then
   raise_application_error(-20000,num1||'-'||num2||'-'||out1||'-'||out2,TRUE);
   RAISE;
end;

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

542

主题

5916

帖子

1万

积分

作者

Rank: 7Rank: 7Rank: 7

积分
13589
沙发
 楼主| 发表于 2020-2-3 15:08:06 | 只看该作者
听说彩票计算奖金就是这种算法,为的是,总值更接近于真实值
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|重庆度量科技  本站关键词:快速开发平台

GMT+8, 2024-11-23 19:33 , Processed in 0.113138 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表