• 关于在MySql的decimal中犯的一个错-此篇文章目的在于警醒自己


    今天在运行一段程序的时候报了Out of range value错误,网上的解释是说这个值与数据库字段类型不匹配,然而程序里面设置的是BigDecimal,数据库设置的是decimal,没有多想就把sql语句copy出来在数据库执行,发现是OK的,就有点懵逼了,然后就各种Debug,没有发现任何问题,后来去看了数据库设计,发现数据库的这个字段设置的是decimal(10,10),于是乎就打脸了;

    太大意了,程序里面的sql语句直接执行没有报错,没有多想就认为是程序的问题,然而执行结果却是这个样子的

    由于程序里面获取到的值是大于0的数字,所以程序层面就直接报错的,但是直接执行Sql语句的时候MySql底层估计是做了优化,不管传什么值,都给我变成0.9999999999;

    发出来让自己涨涨记性;

    decimal(x,y):x代表数字长度,y代表小数点占得长度;decimal(10,10)一共就唱10位,其中小数点就占了10位,所以在程序里面一旦这个值大于1就会报错,这个字段的值永远只能在 -0.9999999999 到 0.9999999999;

  • 相关阅读:
    Java中使用CyclicBarrier
    Java中CountDownLatch使用初步
    设计模式简介
    Java中byte[]和char[]互相转换
    Java转换byte[]数组、Hex十六进制字符串
    TextBox自定义控件
    DataTrigger 绑定枚举
    WPF路径动画(动态逆向动画)
    github上传
    利用Canvas进行绘制XY坐标系
  • 原文地址:https://www.cnblogs.com/pengx/p/9862743.html
Copyright © 2020-2023  润新知