在SQL Server中以用户输入的精度存储和返回小数

时间:2010-01-08 14:20:25

标签: sql-server decimal precision

SQL Server decimal数据类型是否存储了列中每个值的小数点后的实际位数?

例如

UPDATE [Mixes] SET [Concentration] = 0.0012500 WHERE [Id] = 1

,其中

Concentration Decimal(21,11)

是否可以检索用户输入的确切“0.0012500”值,或者是否需要存储在另一列中输入的实际小数位数?

3 个答案:

答案 0 :(得分:2)

十进制类型将数值存储到指定的精度。它不存储格式。这就像用前导零保存一个int。前导零不会更改数值。如果需要用户输入的格式,则需要单独存储或将数字存储为varchar。

答案 1 :(得分:1)

您必须分别存储小数位数。

答案 2 :(得分:1)

在使用十进制列输入后,您将无法区分0.0012500和0.00125之间的区别。您需要以文本形式存储或解析有关输入方式的信息并存储该信息。