凉水不好喝 2023-08-21 10:12 采纳率: 42.1%
浏览 10
已结题

mysql查询结果一个带有两个0的小数,java接收只显示一个一个0

mysql数据库定义多个double(11,2)类型的参数,经过一些计算,计算结果使用Round函数保留两位小数,但是有个特殊情况:

计算结果带有两个0的小数,java接收只显示一个0,例如这样:

数据库计算查询结果为:305.00
但是java接收之后的结果却是:305.0

各位工作的同事,知道什么原因吗?

  • 写回答

4条回答 默认 最新

  • 兴奋的大母鸡 2023-08-21 10:30
    关注

    的确,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。

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

报告相同问题?

问题事件

  • 系统已结题 9月1日
  • 已采纳回答 8月24日
  • 创建了问题 8月21日

悬赏问题

  • ¥15 django5安装失败
  • ¥15 Java与Hbase相关问题
  • ¥20 bash代码推送不上去 git fetch origin master #失败了
  • ¥15 LOL外服加入了反作弊系统,现在游戏录像rofl文件离线都无法打开
  • ¥15 在centos7安装conda
  • ¥15 c#调用yolo3 dll文件获取的数据对不上
  • ¥20 WPF 如何实现多语言,label 和cs(live Charts)中是否都能翻译
  • ¥15 STM32F103上电短路问题
  • ¥15 打开软件提示错误:failed to get wglChoosePixelFormatARB
  • ¥15 (标签-python|关键词-char)