问题描述

今天利用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

相关文章:

  • 2022-12-23
  • 2022-01-13
  • 2021-12-05
  • 2021-11-10
  • 2021-12-29
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-07-13
  • 2021-10-19
  • 2021-07-22
  • 2021-12-29
  • 2022-12-23
相关资源
相似解决方案