gpt4 book ai didi

sql - SQL Server 中数值、 float 和小数之间的区别

转载 作者:行者123 更新时间:2023-12-01 16:19:46 29 4
gpt4 key购买 nike

numericfloatdecimal 数据类型之间有何区别以及应在哪些情况下使用?

对于任何类型的金融交易(例如薪资领域),首选哪一种?为什么?

最佳答案

use the float or real data types only if the precision provided by decimal (up to 38 digits) is insufficient

  • 近似数值数据类型(参见表 3.3)不会存储为许多数字指定的精确值;它们存储非常接近的值的近似值。 (Technet)

  • 避免在 WHERE 子句搜索条件中使用浮点或实数列,尤其是 = 和 <> 运算符。最好将浮点列和实数列限制为 > 或 < 比较。 (Technet)

因此,如果满足以下条件,通常选择 Decimal 作为数据类型是最好的选择

  • 您的电话号码可以放入其中。 十进制精度为 10E38[~ 38 位数字]
  • Float 较小的存储空间(也许还有计算速度)对你来说并不重要
  • 需要精确的数字行为,例如在金融应用程序、涉及舍入的运算或相等检查中。 (Technet)
<小时/>
  1. 精确数字数据类型 decimal and numeric - MSDN
  • 数字 = 十进制(5 到 17 字节)
    • 将映射到 .NET 中的十进制
    • 两者都将 (18, 0) 作为 SQL Server 中的默认(精度、小数位数)参数
    • scale = 小数点右侧可存储的最大小数位数。
    • money(8 字节)和smallmoney(4 字节)也是精确数据类型,将映射到 .NET 中的 Decimal,并具有 4 个小数点 ( MSDN )
  • 近似数字数据类型 float and real - MSDN
    • 实数(4 字节)
      • 将映射到 .NET 中的 Single
      • 实数的 ISO 同义词是 float(24)
    • float (8 字节)
      • 将映射到 .NET 中的 Double

    Exact Numeric Data Types Approximate Numeric Data Types

    主要来源:MCTS Self-Paced Training Kit (Exam 70-433): Microsoft® SQL Server® 2008 Database Development - 第 3 章 - 表、数据类型和声明性数据完整性第 1 课 - 选择数据类型(指南) - 第 93 页

    关于sql - SQL Server 中数值、 float 和小数之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1056323/

    29 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com