sql - 从 SQL Server 中的十进制中删除尾随零

我有一列 DECIMAL(9,6),即它支持像 999,123456 这样的值。

但是当我插入像 123,4567 这样的数据时,它变成了 123,456700

如何去除那些零?

最佳答案

decimal(9,6) 在逗号右侧存储 6 位数字。是否显示尾随零是格式决定,通常在客户端实现。

但由于 SSMS 格式 float 没有尾随零,您可以通过将 decimal 转换为 float 来删除尾随零:

select 
    cast(123.4567 as DECIMAL(9,6))
,   cast(cast(123.4567 as DECIMAL(9,6)) as float)

打印:

123.456700  123,4567

(我的小数分隔符是逗号,但 SSMS 用点格式化十进制。显然是 known issue 。)

https://stackoverflow.com/questions/2938296/

相关文章:

c - 如何在 C 中使用逗号作为千位分隔符来格式化数字?

java - 将 BigDecimal 格式化为最多 2 个十进制数字的字符串,在小数部分删除 0

python - 在 Python 中的文件末尾声明函数

objective-c - 将字符串转换为 NSDate

mysql - 如何在 MySQL 数据库中存储电话号码?

c - 为什么 %d 代表整数?

c# - 文件大小格式提供程序

java - 在 SimpleDateFormat 模式字符串中使用字母字符

excel - 如何在 Excel 中将单元格的字节格式设置为 KB、MB、GB 等?

objective-c - 将秒整数转换为 HH :MM, iPhone