• 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哈哈~

  • 相关阅读:
    1289 大鱼吃小鱼
    install ios开发环境
    Xcode_5
    嵌入式学习_AD学习篇
    课务IOS概述_1
    动态规划入门(2):01背包问题
    Python记之薄暮笔记
    线段树进阶:权值线段树
    动态规划入门(1):最长递增子序列
    python记之Hello world!
  • 原文地址:https://www.cnblogs.com/chenyanbin/p/12806767.html
Copyright © 2020-2023  润新知