如何处理decimal类型或者money类型的小数位数
存储过程:
----------------------------------------
ALTER PROCEDURE [dbo].[QueryPrice]
@NAME varchar(50)
,@PRICE decimal(18,2) OUTPUT
AS
BEGIN
SET @PRICE = (SELECT PRICE FROM INFO WHERE NAME =@NAME)
END
---------------------------------------
Form内调用:
--------------------------------------------
connection.Open();
SqlCommand command = new SqlCommand();
command.Connection = connection;
command.CommandText = "QueryPrice";
command.CommandType = CommandType.StoredProcedure;
command.Parameters.AddWithValue("@NAME", comboName.Text);
command.Parameters.Add("@PRICE", SqlDbType.Decimal).Direction = ParameterDirection.Output;
command.ExecuteNonQuery();
textPrice.Text = command.Parameters["@PRICE"].Value.ToString();
connection.Close();
--------------------------------------------------
问题:
为什么textPrice.Text (TextBox控件)显示不了小数部分,如何显示小数部分。
另外说明,我原来PRICE在数据库中是使用money类型,但小数位一直是4位,不知道怎么调整成2位,按上面相同的方法处理,textPrice.Text也是显示4位小数。
谢谢!
[解决办法]
楼主你在程序中用断点跟踪一下这个command.Parameters["@PRICE"].Value.ToString()
有木有小数点
[解决办法]
ALTER PROCEDURE [dbo].[QueryPrice]@NAME varchar(50),@PRICE decimal(18,2) OUTPUTASBEGINSET @PRICE = (SELECT round(PRICE,2) FROM INFO WHERE NAME =@NAME)END