需求:
#将数字填充到对应金额单中
select substr(b.payMoney,length(b.payMoney),1) 分,
substr(b.payMoney,length(b.payMoney)-1,1) 角,
case when length(b.payMoney)-3 <=0 then ''
else substr(b.payMoney,length(b.payMoney)-3,1)
end 圆,
case when length(b.payMoney)-4 <=0 then ''
else substr(b.payMoney,length(b.payMoney)-4,1)
end 拾,
case when length(b.payMoney)-5 <=0 then ''
else substr(b.payMoney,length(b.payMoney)-5,1)
end 百,
case when length(b.payMoney)-6 <=0 then ''
else substr(b.payMoney,length(b.payMoney)-6,1)
end 千,
case when length(b.payMoney)-7 <=0 then ''
else substr(b.payMoney,length(b.payMoney)-7,1)
end 万,
case when length(b.payMoney)-8 <=0 then ''
else substr(b.payMoney,length(b.payMoney)-8,1)
end 十万,
case when length(b.payMoney)-9 <=0 then ''
else substr(b.payMoney,length(b.payMoney)-9,1)
end 百万,
case when length(b.payMoney)-10 <=0 then ''
e end 亿
from dual;
lse substr(b.payMoney,length(b.payMoney)-10,1)
end 千万,
case when length(b.payMoney)-11 <=0 then ''
else substr(b.payMoney,length(b.payMoney)-11,1)

单据的样式如下:

左边是根据右边的数字进行变换为对应的金额大写,在上面的sql中我是用的是length(b.payMoney)获取的数字长度,其中b.payMoney就是数据库中查询出来的一个数字,

这个sql最致命的问题就是如果最终查询出来的数字是一个整数,即使我是用round/ceil/floor等保留小数的方式,最终得到的长度都不是想要的数据,默认将小数点后面的00去掉了

解决方案:

将其转换成to_char(b.payMoney,'999999999.99');这样写前面的九个9表示小数点前面可以最多九位,小数点后的两个9表示的是保留两位,使用这个查询出来的数据length()这个函数最终就没有问题

oracle中数字保留几位小数的问题的更多相关文章

  1. html模板中的数字保留两位小数

    <script> //html模板中的数字保留两位小数 function formatCurrency(num) { num = num.toString().replace(/\$|\, ...

  2. JS中格式化数据保留两位小数

    问题:在JS中格式化数据保留两位小数的函数的多种方法 最好方法: 保留两位好像是这样吧     var   a   =   9.39393;     alert(a.toFixed(2)); 说明: ...

  3. Java中四舍五入保留两位小数

    Java中四舍五入保留两位小数 方法一 四舍五入 double f = 3.15; long res = Math.round(f); #结果 res = 3 保留两位小数 double f = 3. ...

  4. .net core mvc中input保留多位小数

    本篇介绍:如何在mvc中使用html标签保留多位小数 你需要知道: @html标签的使用: https://blog.csdn.net/pasic/article/details/7093802 js ...

  5. Javascript 数字保留2位小数

    整理使用Javascript函数将数值保留两位小数: 1.num.toFixed(2) //进位 2.(Math.round(num * 100) / 100).toFixed(2) //进位 3.( ...

  6. 梁勇(Danniel Liang) java教材例题:java程序购买额按税率求营业税 java中数值保留2位小数的方法

    package com.swift; import java.util.Scanner; public class PurchaseTaxDecimalsTwo { public static voi ...

  7. js中关于json常用的内容、js将数字保留两位小数

    没什么好说的  保存起来  以后有个地方找 var json=eval("[]") //json定义 var s={"id":"xxx",& ...

  8. Oracle数据库字段保留3位小数,程序读出来显示4位小数

    需求 项目需求从字段2位小数,改成3位小数,这事儿好办,数据库噼里啪啦敲了一行代码,发现居然报错,原因是不能修改字段精度问题,然后使用了冒泡排序,搞定 --新增临时字段 ,); --将原字段内容拷贝至 ...

  9. js-格式化数字保留两位小数-带千分符

    很多时候发现有时候js会提示自带函数不能使用,所以自己找了很多资料实现了个 html <input type="text" class="input_text in ...

随机推荐

  1. Spring 工具包

    Spring 工具包: spring-core-.RELEASE.jar!\org\springframework\util

  2. Missing library: xdoclet-1.2.1.jar.如何解决?

    去这里下载xdoclet-bin-1.2.1.zip http://sourceforge.net/projects/xdoclet/files/xdoclet/1.2.1/ 解压出来,比如解压到C: ...

  3. 输出UTF-8-BOM格式的文件

    File localDir = new File(localPath); if(!localDir.exists()){ localDir.mkdirs(); } File file = new Fi ...

  4. Tomcat的overview界面说明

    Tomcat的overview界面说明 一.Tomcat的overview界面 双击或者open,进入Tomcat的overview界面, 一般情况workspace的子路径为.metadata.pl ...

  5. 使用MyBatis Generator 1.3.7自动生成代码

    MyBatis Generator是一款mybatis自动代码生成工具,可以通过配置后自动生成文件. MyBatis Generator有几种方法可以生成代码,下面是其中一种.  一.官网下载 MyB ...

  6. Docker常用命令详解

    docker ps 查看当前正在运行的容器 docker ps -a 查看所有容器的状态 docker start/stop id/name 启动/停止某个容器 docker attach id 进入 ...

  7. 【HNOI 2018】游戏

    Problem Description 一次小 \(G\) 和小 \(H\) 在玩寻宝游戏,有 \(n\) 个房间排成一列,编号为 \(1,2,-,n\),相邻房间之间都有 \(1\) 道门.其中一部 ...

  8. PHP钩子的简单介绍

    <?php /** * 钩子类 */ class Hook { static public function execute($type, $model='') { if($model == ' ...

  9. Fastjson-fastjson中$ref对象重复引用问题:二

    import java.util.ArrayList; import java.util.List; import com.alibaba.fastjson.JSON; import com.alib ...

  10. ubuntu18.04.2LTS下安装和配置MySql数据库 --ubuntu

    1.安装MySql ubuntu@thanlon-Ubuntu:~$ sudo apt install mysql-server 2.mysql安装完成后,默认用户名不是root,为了方便,一般我们需 ...