需求:
#将数字填充到对应金额单中
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. 平常比较多实用的SQL

    创建数据库 创建之前判断该数据库是否存在 if exists (select * from sysdatabases where name='databaseName') drop database ...

  2. vue计算属性和侦听器

    一.计算属性: main.js: var app = new Vue({ el: '#app', data: { math: 80, physics: 90, english: 30 }, compu ...

  3. Docker bridge-utils 工具简单部署

    bridge-utils 网桥查看工具 # 1.安装 查看桥接工具 yum install -y bridge-utils # 2.查看桥接 命令brctl show bridge name brid ...

  4. Linux firewalld 防火墙

    Linux firewalld 防火墙  简介 RHEL 7 系统中集成了多款防火墙管理工具,其中 firewalld(Dynamic Firewall Manager of Linux system ...

  5. 2018-2019-2 20189206 Python3学习

    python3简明教程学习 基本概念 脚本文件: 脚本文件英文为Script.实际上脚本就是程序,一般都是由应用程序提供的编程语言.应用程序包括浏览器(javaScript.VBScript).多媒体 ...

  6. hdoj1905 Pseudoprime numbers (基础数论)

    Problem Description Fermat's theorem states that for any prime number p and for any integer a > 1 ...

  7. while 运算符 初始编码 python2和python3的区别

    1.while 循环 2.运算符 3.初始编码 4.python2 和python3的区别 1.while循环: 关键词:while[循环]         break[跳出循环]         c ...

  8. tomcat下面web应用发布路径配置 ( 即虚拟目录配置 )

    https://blog.csdn.net/AnQ17/article/details/52122236

  9. 浅谈HTTP中GET、POST用法以及它们的区别

    浅谈HTTP中GET.POST用法以及它们的区别 HTTP定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DELETE.URL全称是资源描述符.我们可以这样认为: 一 ...

  10. html5中的几种布局简单比较

    html中的布局主要由静态布局.自适应布局.流式布局以及响应式布局几类,简单比较以下这几种布局的区别和特点. 一 静态布局(Static Layout) 表现:在传统web设计中,不管浏览器尺寸具体大 ...