Sql server SQL Server中的浮点和十进制转换
可能重复:Sql server SQL Server中的浮点和十进制转换,sql-server,Sql Server,可能重复: 运行时:选择convert(float,10.12),convert(decimal(5,2),10.12) 我得到这个结果: (No column name) (No column name) 10,12 10.12 为什么会这样?我来自巴西,我的Windows语言设置为葡萄牙语,但十进制和浮点不能同时返回“.”或“,”?我不确定这是否是问题所在,但这似乎是SSMS中的一个fomatting错误。它对float和money使用OS区域设置,但对decimal不使用 我
运行时:
选择convert(float,10.12),convert(decimal(5,2),10.12)
我得到这个结果:
(No column name) (No column name)
10,12 10.12
为什么会这样?我来自巴西,我的Windows语言设置为葡萄牙语,但十进制和浮点不能同时返回“.”或“,”?我不确定这是否是问题所在,但这似乎是SSMS中的一个fomatting错误。它对float和money使用OS区域设置,但对decimal不使用
我不确定这是否是问题所在,但这似乎是SSMS中的一个FOMATT错误。它对float和money使用OS区域设置,但对decimal不使用
我不知道为什么这是重复关闭的。链接的问题是关于为什么语言设置不影响浮点转换中的小数分隔符。您的问题是,为什么浮点和十进制类型在使用convert时不使用相同的十进制分隔符。尽管如此,我希望我的回答有帮助!谢谢,杰森,确实是这样。我一直在寻找解决方法,但您的链接显示这是SQL Server本身的问题。不幸的是,我所能做的就是转换为varchar,并使用REPLACE()替换“,”为“.”并在以后转换为十进制。我不确定为什么会将其作为重复项关闭。链接的问题是关于为什么语言设置不影响浮点转换中的小数分隔符。您的问题是,为什么浮点和十进制类型在使用convert时不使用相同的十进制分隔符。尽管如此,我希望我的回答有帮助!谢谢,杰森,确实是这样。我一直在寻找解决方法,但您的链接显示这是SQL Server本身的问题。不幸的是,我所能做的就是转换为varchar,并使用REPLACE()将“,”替换为“.”,然后再转换为十进制。