sql server 中,money类型转换为字符串的有关问题
sql server 中,money类型转换为字符串的问题
SELECT 出来的可以正确显示,后面3行PRINT出来的,就只显示为“0.50”了,小数点后面第3位开始都丢掉了
在转换为字符串的时候,如何保留小数点后面至少4位数值?
------解决思路----------------------
try this,
------解决思路----------------------
------解决思路----------------------
刚看了SQL帮助。找到问题了。
使用 CONVERT:
CONVERT (data_type[(length)], expression [, style])
这里有个style参数。
在下表中,左列表示从 money 或 smallmoney 转换为字符数据时的 style 值。
值 输出
0(默认值) 小数点左侧每三位数字之间不以逗号分隔,小数点右侧取两位数,例如 4235.98。
1 小数点左侧每三位数字之间以逗号分隔,小数点右侧取两位数,例如 3,510.92。
2 小数点左侧每三位数字之间不以逗号分隔,小数点右侧取四位数,例如 4235.9819。
改为下面就可以了。
PRINT CONVERT(varchar(50), @UnitPrice,2)
------解决思路----------------------
DECLARE @UnitPrice money
SET @UnitPrice = 0.5028
SELECT @UnitPrice
PRINT @UnitPrice
PRINT CAST(@UnitPrice AS varchar(50))
PRINT CONVERT(varchar(50), @UnitPrice)
SELECT 出来的可以正确显示,后面3行PRINT出来的,就只显示为“0.50”了,小数点后面第3位开始都丢掉了
在转换为字符串的时候,如何保留小数点后面至少4位数值?
------解决思路----------------------
try this,
declare @UnitPrice money
set @UnitPrice=0.5028
print rtrim(cast(@UnitPrice as decimal(18,4)))
------解决思路----------------------
DECLARE @UnitPrice money
SET @UnitPrice = 0.5028
SELECT @UnitPrice
PRINT @UnitPrice
PRINT CAST(@UnitPrice AS dec(12,4))
PRINT CONVERT(varchar(50), CAST(@UnitPrice AS dec(12,4)))
------解决思路----------------------
刚看了SQL帮助。找到问题了。
使用 CONVERT:
CONVERT (data_type[(length)], expression [, style])
这里有个style参数。
在下表中,左列表示从 money 或 smallmoney 转换为字符数据时的 style 值。
值 输出
0(默认值) 小数点左侧每三位数字之间不以逗号分隔,小数点右侧取两位数,例如 4235.98。
1 小数点左侧每三位数字之间以逗号分隔,小数点右侧取两位数,例如 3,510.92。
2 小数点左侧每三位数字之间不以逗号分隔,小数点右侧取四位数,例如 4235.9819。
改为下面就可以了。
PRINT CONVERT(varchar(50), @UnitPrice,2)
------解决思路----------------------
--可以把
DECLARE @UnitPrice money
--换成
DECLARE @UnitPrice decimal(18,4)