1

我有一个列,varchar我正在尝试将其转换为numeric(8,2)像这样返回它1.00,但它却像这样返回它1.000

例子:

 Select 
   Convert(numeric(8,2),WholesaleCost) * 2.2)
 FROM Table

这返回50.900

似乎当我将比例缩小到numeric(8,1)而不是numeric(8,2)返回我想要的方式时,即50.90

有谁知道它为什么这样做?为什么要在结果中添加一个额外的比例数字?不应该是50.9我做的时候numeric(8,1)吗?

4

1 回答 1

1

Because you are doing numeric(8,2) * numeric(2,1) and the resultant datatype is numeric(11,3)

When multiplying two numeric numbers e1 * e2 the result has precision p1 + p2 + 1 and scale s1 + s2 as per Precision, Scale, and Length

于 2012-10-06T14:55:17.197 回答