经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 数据库/运维 » Oracle » 查看文章
oracle to_Char fm 函数
来源:cnblogs  作者:庐山烟雨  时间:2019/5/24 11:50:26  对本文有异议

  1. 近期在使用oracle to_char函数处理浮点数时发现有坑,这里做个小结:

    网上可以找到关于to_char中使用fm9990.0099中的相关解释:
  • 0表示:如果参数(double或者float类型)存在数字就显示数字,不存在数字就显示0
  • 9表示:如果参数(double或者float类型)存在数字就显示数字,不存在数字就显示空格
  • FM表示:将9带来的空格删除
  1.  
  1. 下面通过具体代码进行相关验证
  1. --SQL示例代码:




  1. With Tmp As
  2. (Select 2312320.012 n From dual Union All
  3. Select 0.012322 n From dual Union All
  4. Select 0.012564 n From dual Union All
  5. Select -0.012 n From dual Union All
  6. Select -10023 n From dual Union All
  7. Select 8989898 n From dual)
  8. Select --全部为 9
  9. To_Char(t.n, '9999999999.9999999') all_9,
  10. --全部为 9 同时使用 FM
  11. To_Char(t.n, 'FM999999999999999.9999999') all_FM9,
  12. --全部为 0
  13. To_Char(t.n, '000000000.0000000') all_0,
  14. --全部为 0 同时使用 FM
  15. To_Char(t.n, 'FM000000000.0000000') all_FM0,
  16. --个位开始向右使用 0 向左使用9
  17. To_Char(t.n, '9999999990.0000000') some9one0,
  18. --个位开始向右使用 0 向左使用9 同时使用FM
  19. To_Char(t.n, 'FM999999999999990.00000000') some9one0P0_FM,
  20. --个位使用 0 同时使用FM
  21. To_Char(t.n, 'FM999999999999990.99999999') some9one0P9_FM,
  22. --个位使用 0 前四位小数位使用 0 同时使用FM
  23. To_Char(t.n, 'FM999999999999990.0000999') some9one0P09_FM
  24. From tmp t;



  1. --执行结果:

--总结:

1、9在不同的地方可能会使用不同的占位符:整数位使用空格;小数位有有效数时使用0,无有效数时使用空格;

2、9对于绝对值小于1的小数的个位会处理成空格

3、FM只能用来删除9所产生的多余的占位符(空格或0),对于0产生的占位符无效。

 

--思考:

四舍五入可以通过控制9或0的个数实现。

 

原文链接:http://www.cnblogs.com/lushanyanyu/p/10916821.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号