需求:
#将数字填充到对应金额单中
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. Go 初体验 - 令人惊叹的语法 - defer.1 - 基本概念和用法

    在我们编程时,难免遇见 流.远程连接.文件等 io 操作,为了高性能,我们不得不打开和关系这些 io 对象. 在 java.C# 语言里这些打开和关闭的操作都需要程序员自己选择操作时机,一般是在 io ...

  2. 深入FM和FFM原理与实践

    FM和FFM模型是最近几年提出的模型,凭借其在数据量比较大并且特征稀疏的情况下,仍然能够得到优秀的性能和效果的特性,屡次在各大公司举办的CTR预估比赛中获得不错的战绩.美团点评技术团队在搭建DSP的过 ...

  3. 在 Tomcat 中自定义 404 页面(简单配置)

      打开 Tomcat 中的 web.xml,(tomcat/conf/web.xml) 添加如下代码: <error-page>  <error-code>404</e ...

  4. Docker Overlay 应用部署

    Docker Overlay 部署条件 要想使用Docker原生Overlay网络,需要满足以下任意条件: 1.Docker运行在Swarm模式 2.使用键值存储的Docker主机集群 本次部署使用键 ...

  5. [C++ Primer Plus] 第7章、函数(一)程序清单——递归,指针和const,指针数组和数组指针,函数和二维数组

    程序清单7.6 #include<iostream> using namespace std; ; int sum_arr(int arr[], int n);//函数声明 void ma ...

  6. 使用js方法时,调用的方法名明明一致,但就是不管用,解决

    前提:代码全部写对 问题:调用的方法名明明一致,但就是不管用 举例:写了个function delete(){}方法, 点击调用delete方法,onclik="delete()" ...

  7. iOS开发 -------- 网络状态监测

    一 示例代码 需要先把第三方Reachability下载导入到工程中  下载网址  https://github.com/tonymillion/Reachability 1 封装网络工具类 Netw ...

  8. 单元测试系列之二:Mock工具Jmockit实战

    更多原创测试技术文章同步更新到微信公众号 :三国测,敬请扫码关注个人的微信号,感谢! 原文链接:http://www.cnblogs.com/zishi/p/6760272.html Mock工具Jm ...

  9. CSS【04】:CSS组合选择器

    组合选择器 群组(并集)选择器 作用:给所有选择器选中的标签设置属性,可以同时控制多个选择器 格式: 选择器1, 选择器2 { 属性: 值; } 注意点: 必须使用,来连接 选择器可以使用标签名称.i ...

  10. 4、zabbix基本配置入门

    Zabbix监控流程: Host group --> Hosts(向server端添加被监控主机) --> Application(在agent定义) --> Items(在appl ...