为什么数字刻度会返回一个额外的数字

时间:2012-10-06 14:46:10

标签: sql-server sql-server-2008 tsql

我有一个varchar列,我正在尝试将其转换为numeric(8,2),以便像1.00一样返回它,但它会像这样返回{{1} }

示例:

1.000

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

似乎当我将比例缩小到50.900而不是numeric(8,1)时,它会返回我想要的状态,即numeric(8,2)

有谁知道为什么这样做?为什么在结果中添加额外的比例数字?我做50.90时不应该是50.9吗?

1 个答案:

答案 0 :(得分:1)

因为您正在执行numeric(8,2) * numeric(2,1),结果数据类型为numeric(11,3)

当两个numeric数字e1 * e2相乘时,结果具有精确度p1 + p2 + 1,并按Precision, Scale, and Length缩放s1 + s2