点X不NG 2018-06-25 06:07 采纳率: 51.5%
浏览 3047
已采纳

LONG类型长值存储oracle数据库number字段中取值发现不正确

1.页面用户输入银行卡位数比较长,所以服务端用long类型装载。
当存入到oracle数据库中时,查看数据变成了科学记数法标记。(网上说没有指定oracle的number字段长度会就会科学计数超过8位还是9位)。然后问题来了.......
当取出库中字段去前端展示时候,发现最后四位都变成了0,有的是最后追加了10000。

例子:
原始值 123457689098221781
存到库中是科学记数法
再次取值 就成了 123457689098220000 或者 1234576890982210000
(奇怪的是导出excel时候,文件中的卡号都是正确的.....)

才疏学浅....请帮忙看看

  • 写回答

6条回答 默认 最新

  • 菜o籽 2018-06-25 07:22
    关注

    每一个存放数据的地方,不管是数据库中表列,还是应用程序中界面UI,它在展示数据的时候都有长度属性的。就像你这个 long型的数字,有十几位长,在丢失精度的情况下,oracle肯定会用科学计数法的形式 保存。就像在 excel中新建标签页中 你输入18位身份证号,回车默认显示成6.xxxxxxxxxxx*10E2这种形式了。但是字符型的话就不会出现这种情况。就像1楼说的。原始存储类型定义成字符型的,需要在其他地方做数值运算是可以强制转换成数值型

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(5条)

报告相同问题?

悬赏问题

  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog
  • ¥15 Excel发现不可读取的内容
  • ¥15 关于#stm32#的问题:CANOpen的PDO同步传输问题