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 @ 2022-01-05 14:06  晨度  阅读(278)  评论(0编辑  收藏  举报