zoukankan      html  css  js  c++  java
  • 解决Oracle出现以0开头的小数,开头的0消失的问题

    项目中碰到了个问题,本来报表需要显示“0.49%”,结果就是显示成“.49%”

    找问题

    首先在pl/sql工具里执行sql,发现原始的数据就是“.49%”,那么问题来了,原始sql的问题,跟工具无关了。

    因为.49和“%”是通过字符串拼接的形式合成的,Oracle中存在一个隐形类型转换的问题,在拼接的过程中小数自动转成字符类型,相当于调用了to_char函数。

    在类型隐形转换开始前先把小数转换成字符类型就不回出现这个问题了。

    如:

    select to_char(0.12,'fm9999990.9999') ||'%' from dual;

    给小数一个格式然后转换为字符类型可以解决这个问题。

    当然此方法还可以解决强制性保留几位小数位,比如,‘0.5’,怎么让它变成 ‘0.5000’,很简单,上面的方法就可以用

    select to_char(0.5,'fm9999990.0000') ||'%' from dual; 

    有时候我们也会遇到1,2,3 需要转换为01,02,03 那么也可以使用这种方法

    SELECT to_char(2,'fm00') FROM dual;

    2就会变为02了

  • 相关阅读:
    网络协议
    面向对象三大特性之多态
    面向对象三大特性之封装
    面向对象三大特性之继承
    python面向对象编程
    常用模块之configpaser与shutil
    XML模块
    Python模块之OS,subprocess
    Python日志(logging)模块,shelve,sys模块
    Linux 配置 Nginx
  • 原文地址:https://www.cnblogs.com/xiaoliu66007/p/7813380.html
Copyright © 2011-2022 走看看