关于在MySql的decimal中犯的一个错-此篇文章目的在于警醒自己
2024-10-21 03:10:06
今天在运行一段程序的时候报了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;
最新文章
- Golang(笔记) 面向对象
- 表在用时建索引要加ONLINE
- springmvc(1)DispatcherServlet源码简单解析
- 定制Eclipse IDE之杂症篇
- phalcon: 表单
- 保持UIImagePickerController后导航栏风格统一
- Android远程图片获取和本地缓存
- 【html】页面制作规范文档
- 【转】C# Excel 导入到 Access数据库表(winForm版)
- JAVA信号量使用示例程序
- mysql使用硬链接配合truncate 删除2.2T的表 --杨奇龙
- 遗传算法详解(LINGO及MatlabGA工具箱求解实现)
- codefroces 946F Fibonacci String Subsequences
- Struts2 前台显示问题
- 包建强的培训课程(16):Android新技术入门和提高
- Django REST framework 第一章 Serialization
- 添加,删除List<;Map<;String, Object>;>;元素
- tp 内置压缩文件zip
- [ log4j ]-日志文件的使用
- java方法中增加不固定参数