oracle - DBMS_RANDOM.VALUE 返回值等于 HIGH 值
问题描述
为什么这会返回 1 到 5 之间的值?
declare
v numeric;
begin
v := dbms_random.value(1, 5);
DBMS_OUTPUT.PUT_LINE(v);
end;
根据文档,它应该返回 1 到 4 之间的值。
注意:我使用的是 Oracle 12c 第 2 版
解决方案
它为您四舍五入。
declare
v numeric(6,5);
w numeric;
begin
v := dbms_random.value(1, 5);
w := v;
DBMS_OUTPUT.PUT_LINE(v);
DBMS_OUTPUT.PUT_LINE(w);
DBMS_OUTPUT.PUT_LINE(FLOOR(v));
end;
/
结果之一:
dbms_output:
4.92843
5
4
推荐阅读
- java - 如何动态设置 ImageResource?
- python - Python remove 方法从两个列表中删除元素
- python-3.x - 超类方法没有按预期工作,为什么?
- python - 添加购物车到订单
- ruby-on-rails - rswag gem 无法识别我在 rspec 中的参数
- python - “模块未找到错误”。如何让我的 python 识别模块的安装位置?
- c - 这个 BIO_new_ssl_connect 在文档中的这个例子中到底做了什么?
- javascript - JavaScript 中的 Audio() 标签
- apache-kafka - 将单个 Kafka 主题的消息分发给特定的消费者
- python - 带有最小和最大条件Python的while循环