mysql数据库定义多个double(11,2)类型的参数,经过一些计算,计算结果使用Round函数保留两位小数,但是有个特殊情况:
计算结果带有两个0的小数,java接收只显示一个0,例如这样:
数据库计算查询结果为:305.00
但是java
接收之后的结果却是:305.0
各位工作的同事,知道什么原因吗?
mysql数据库定义多个double(11,2)类型的参数,经过一些计算,计算结果使用Round函数保留两位小数,但是有个特殊情况:
计算结果带有两个0的小数,java接收只显示一个0,例如这样:
数据库计算查询结果为:305.00
但是java
接收之后的结果却是:305.0
各位工作的同事,知道什么原因吗?
的确,java在查询时,会自动把.00相关的格式信息去掉,解决方法,在java端查询时,对sql进行特殊处理,如:
book实体类中amount字段在数据库为decimal(18,2)类型,正常在mybatis的XML文件内的sql查询为:
SELECT id,bookName,amount from book where id=#{id}
此时,可将其修改为:
SELECT id,bookName,CAST(amount AS CHAR) amount
from book where id=#{id}
这样当数据库中amount数据为22.00时,后台获取到的数据也为22.00。