Sql server SQL Server 2005 varchar在转换为小数时丢失小数位数
为什么?试试Sql server SQL Server 2005 varchar在转换为小数时丢失小数位数,sql-server,decimal,Sql Server,Decimal,为什么?试试Set@BadDecimal='4,5'转换或转换为显式十进制(数字、精度)的方法: SQLServer帮助说明(数字、精度)的每个组合都作为单独的数据类型处理。试试看 SELECT CONVERT(DECIMAL(5, 2), '4.5') SELECT CAST('4.5' AS DECIMAL(5,2)) 编辑:在请求后改为(2,1)。科恩杰击败了我 您需要使用此格式Decimal(p,s)声明小数 p=小数点左侧和右侧可存储的最大小数位数总数。精度必须是从1到最大精度38之
Set@BadDecimal='4,5'
转换或转换为显式十进制(数字、精度)的方法:
SQLServer帮助说明(数字、精度)的每个组合都作为单独的数据类型处理。试试看
SELECT CONVERT(DECIMAL(5, 2), '4.5')
SELECT CAST('4.5' AS DECIMAL(5,2))
编辑:在请求后改为(2,1)。科恩杰击败了我 您需要使用此格式Decimal(p,s)声明小数 p=小数点左侧和右侧可存储的最大小数位数总数。精度必须是从1到最大精度38之间的值。默认精度为18
s=小数点右侧可存储的最大小数位数。比例必须是从0到p的值。仅当指定了精度时,才能指定比例。默认比例为0;因此,0如果您在字符串中使用参数@BadDecimal,这将不起作用谢谢,我很高兴为您服务您可能应该编辑您的帖子。十进制(2,2)不正确。存储4.5的精度和刻度的最小值为十进制(2,1)。最好是第一;-)通常情况下,我只是有点太慢了。
SELECT CONVERT(DECIMAL(5, 2), '4.5')
SELECT CAST('4.5' AS DECIMAL(5,2))
Declare @GoodDecimal Decimal(2,1)