代码之家  ›  专栏  ›  技术社区  ›  Aidan Ryan

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

  •  0
  • Aidan Ryan  · 技术社区  · 15 年前

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

    例如

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

    在哪里?

    Concentration Decimal(21,11)
    

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

    3 回复  |  直到 15 年前
        1
  •  2
  •   user121301    15 年前

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

        2
  •  1
  •   Jonas Lincoln    15 年前

    您必须单独存储小数位数。

        3
  •  1
  •   Cade Roux    15 年前

    在只使用十进制列输入0.0012500和0.00125之后,您将无法分辨两者之间的差异。您需要以文本形式存储,或者解析有关如何输入的信息并存储这些信息。