2012-08-07 122 views
0

我应该使用哪种数据类型来给我一个有2位小数的数字?2位小数的数据类型?

目前,我有以下行:

command.Parameters.Add("@miles", SqlDbType.Decimal, 2).Value = miles; 

,我不知道什么SqlDbType.Decimal, 4指小数点后的条款?

意志,让下面的

123.32 
123321.67 

,不允许号码,如

123 
123.123321 
543345.5434523 
324.1 
+0

为什么不在发送到数据库之前格式化该值?我想你会使用十进制 – dtsg 2012-08-07 13:42:10

+0

你真的需要阅读['decimal'](http://msdn.microsoft.com/en-us/library/ms187746.aspx)上的文档。 4代表精度。你需要使用一个也需要比例的过载(2,在你的情况下)。 – Oded 2012-08-07 13:43:29

+0

@Duane,只是试图超严格... – oshirowanen 2012-08-07 13:44:04

回答

3

对于decimal你需要指定参数的精度和比例。

您可以通过构建参数(使用new)并添加它来完成此操作。

SqlParameter MSDN页面中的最后两个构造函数重载具有精度和尺度的参数。

0

你好,你可以为了与规模尝试格式化参数

SqlParameter parameter = new SqlParameter("miles", SqlDbType.Decimal); 
parameter.Scale = 2; //The number of positions 

http://msdn.microsoft.com/fr-fr/library/system.data.sqlclient.sqlparameter.scale.aspx 
+1

这是一个正常的输入参数,而不是输出参数。 – Oded 2012-08-07 13:53:59

+0

好吧,我理解你的建议谢谢你的Oded – 2012-08-07 13:56:19