zoukankan      html  css  js  c++  java
  • Oracle数据库字段保留3位小数,程序读出来显示4位小数

    需求

      项目需求从字段2位小数改成3位小数,这事儿好办,数据库噼里啪啦敲了一行代码,发现居然报错,原因是不能直接修改字段精度问题,然后使用了冒泡排序,搞定

    --新增临时字段
    alter table Real_Proj_Section add WEIGHT2 number(10,3);
    --将原字段内容拷贝至新字段
    UPDATE Real_Proj_Section SET WEIGHT2=WEIGHT
    --删除原先字段
    alter table Real_Proj_Section drop column WEIGHT
    --新增原先字段
    alter table Real_Proj_Section add WEIGHT number(10,3);
    --给原先字段加备注
    comment on column  Real_Proj_Section.Weight is '分段重量'
    --将临时字段内容拷贝至原先字段
    UPDATE Real_Proj_Section SET WEIGHT=WEIGHT2
    --删除临时字段
    alter table Real_Proj_Section drop column WEIGHT2

    遇到问题

      可以是到前台显示就出现问题了,数据库中明明保留的是3位小数前台显示的时候,会显示4位小数后面多一个“0”

    数据库字段,显示也是3位小数

    问题思考与解决

      刚开始以为程序的问题调试过程中,发现返回DataTable中,这个值就多个“0”,感觉应该是精度丢失问题,然后百度查,发现之前有人也碰到过此问题一直没人解决(也没人回答,帖子没结),能试过的方法都试过了,后来没辙了,都打算放弃治疗了。晚上睡上一觉,第二天醒来后,脑海中冒出一个新想法,将字段转字符串试试看呗,死马当活马医,后台sql改为前面加TO_CHAR

    SELECT TO_CHAR(WEIGHT) WEIGHT FROM Real_Proj_Section WHERE SPS_ID=    272262

    搞定~

      人生还是得经得起折腾,O(∩_∩)O哈哈~

  • 相关阅读:
    一个maven问题
    zz 聊聊并发(七)——Java中的阻塞队列
    聊聊并发(六)
    jvm 内存参数
    zz 聊聊并发(五)
    zz 聊聊并发(四)
    zz 聊聊并发(三)
    zz 聊聊并发(二)
    zz 聊聊并发(一)
    JQuery中$.ajax()方法参数详解
  • 原文地址:https://www.cnblogs.com/chenyanbin/p/12806767.html
Copyright © 2011-2022 走看看