Fork me on GitHub

sqlserver查出来的数据丢失

问题描述

今天利用sqlserver查数据,使用了一个ROUND(308.16000, 2)函数,发现在sqlserver工具中显示正常,但是在服务端查出来就会发生精度丢失问题。

ROUND和CAST区别

  • CAST
    是将一种类型转换为另一种类型,如String 转int,如果含有小数或其他字符,则报错;使用方法CAST('123.456' as decimal(38, 2))。
  • ROUND
    是将数据进行四舍五入或截取;四舍五入使用方法ROUND(123.75633, 2),截取使用方法ROUND(123.75633, 2, 1)。
    SELECT ROUND(123.75633, 2, 1) ---123.75000
    SELECT ROUND(123.75633, 2) ---123.76000

解决办法

将ROUND函数换成CAST函数即可解决。

参考

https://www.cnblogs.com/qianjinyan/p/9636544.html

posted @   晨度  阅读(342)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
点击右上角即可分享
微信分享提示