Oracle数据显示保留小数点的问题
Oracle数据显示保留小数点的问题
因为工作需要要写一个保留小数点的方法或SQL语句,number类型的小数,如果是0.5或-0.5,打印的时候就会显示成.5或-.5,显然不是我想要的,自己就简单的写了一个,功能可以实现了,效率不高,高手们多多指教。
- DECLARE
- NUM1 NUMBER := 1/4; -- 要进行舍入的数字
- NUM2 NUMBER; -- 中间变量
- IND NUMBER; -- 小数点位置
- PARAM NUMBER := 3; --精度,保留的小数位数,由于number精度限制,最大精度为38位
- RESULT VARCHAR2(10000);
- BEGIN
- NUM2 := ROUND(NUM1, PARAM); -- 对入参数字按照精度进行四舍五入
- IND := INSTR(NUM2, '.'); -- 获得‘.’的位置
- RESULT := NUM2;
- IF IND = 0 THEN -- 没有找到小数点,说明是整数
- RESULT := RESULT || '.'; -- 在后面补个小数点
- RESULT := RPAD(RESULT, LENGTH(RESULT) + PARAM, '0'); -- 按照精度对结果进行补0操作
- ELSE -- 找到小数点
- -- 小数的时候
- IF NUM2 < 1 THEN
- -- 小于1的小数,要对小于1的小数进行首位补零
- IF NUM2 > 0 THEN
- RESULT := '0' || NUM2;
- ELSIF (-1 < NUM2 AND NUM2 < 0) THEN
- RESULT := '-0' || SUBSTR(RESULT, IND);
- ELSE
- RESULT := NUM2;
- END IF;
- END IF;
- IND := INSTR(RESULT, '.');
- RESULT := RPAD(RESULT, IND + PARAM, '0');
- END IF;
- DBMS_OUTPUT.put_line(RESULT);
- END;
- /
更多Oracle相关信息见Oracle 专题页面 http://www.bkjia.com/topicnews.aspx?tid=12
评论暂时关闭