日期:2014-05-16  浏览次数:20823 次

hibernate+mysql float类型无法插入小数

往数据库里面插入小数,结果被四舍五入为整数。当时看见这个情况让我很是奇怪。经不完全查证原因如下:

当数据大于32767小数的部分就没法存储(出自:http://www.phpzy.com/mysqlchangyongyujuwenda/39441.html?),经验证,确实如此。但是听说:A precision from 0 to 23 results in a four-byte single-precision?FLOAT?column。看起来不应该没有小数。

解决办法:可以使用double或者BigDecimal代替。


顺便说一下hibernate定义精度的注解语句:

@Column(precision=23,scale=3)

precision:精度。

scale:小数位数。

//注此语句对于mysql的float没有效果。