当前位置: 首页 > 面试题库 >

SQL Server中的数字,浮点数和小数之间的差异

韩宜春
2023-03-14
问题内容

numeric,floatdecimal数据类型之间的区别是什么,应在哪种情况下使用?

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


问题答案:

仅当十进制(最多38位)提供的精度不足时才使用浮点或实数数据类型

近似数字数据类型不能存储为许多数字指定的确切值;他们存储的值非常接近。(Technet)

避免在WHERE子句搜索条件中使用浮点或实数列,尤其是=和<>运算符(Technet)

因此通常来说,因为如果您的数字可以容纳,则十进制提供的精度为[10E38〜38位数],并且较小的Float存储空间(可能还有速度)并不重要,并且处理异常行为和近似数值类型的问题也不重要可以接受,一般使用Decimal。

更有用的信息

  • 数字=十进制(5到17个字节)(精确的数字数据类型)
  • 将在.NET中映射为Decimal
  • 在SQL Server中都具有(18,0)作为默认(precision,scale)参数
  • scale =可以存储在小数点右边的最大小数位数。
  • 请注意,money(8字节)和smallmoney(4字节)也是精确的,它们映射到.NET中的Decimal并具有4个小数点(MSDN)
  • 十进制和数字(Transact-SQL)-MSDN
  • 实数(4字节)(近似 数值数据类型)
  • 将在.NET中映射为Single
  • ISO的real同义词是float(24)
  • 浮点数和实数(Transact-SQL)-MSDN
  • 浮点数(8字节)(近似 数值数据类型)
  • 将在.NET中映射为Double
  • 无论使用哪种类型的处理器体系结构或数字的大小,所有精确的数字类型都始终产生相同的结果。
  • 提供给float数据类型的参数定义了用于存储浮点数尾数的位数。
  • 近似数值数据类型通常使用较少的存储空间并具有较好的速度(最高20倍),并且您还应考虑在.NET中* 转换它们的时间


 类似资料:
  • 我正在尝试解决此问题: 一位物理教授给班上的学生做项目。学生们必须组成一个两人小组来做这个项目。教授让学生来决定队伍。一个班级的学生人数将是偶数。 每个学生都有自己的知识水平。它告诉每个学生有多少知识。一个团队的知识水平是两个学生知识水平的总和。 学生们决定组成小组,这样知识最高的团队和知识最低的团队之间的差异就最小了。 投入 输入的第一行将包含测试用例的数量t;在接下来的t行中,第一个数字是n,

  • 问题内容: 我似乎在使用浮点数时失去了很多精度。 例如,我需要求解一个矩阵: 这是我用来从文本文件导入矩阵的代码: 我需要使用gauss-seidel进行求解,因此需要重新排列x,y和z的方程式: 这是我用来重新排列方程式的代码。是系数矩阵,是答案向量: 但是,我得到的答案并不精确到小数位。 例如,从上面重新排列第二个方程式后,我应该得到: 我得到的是: 这看起来似乎不是一个大问题,但是当您将数字

  • 本文向大家介绍奇数和偶数之和之间的差。,包括了奇数和偶数之和之间的差。的使用技巧和注意事项,需要的朋友参考一下 问题陈述 对于给定的长整数n,编写一个程序以查找奇数位和偶数位总和之间的差是否为0。索引从0开始。 示例 示例 以下是Java中的程序,用于查找所需的输出。 输出结果

  • 本文向大家介绍Java数组中最大质数和最小质数之间的差异,包括了Java数组中最大质数和最小质数之间的差异的使用技巧和注意事项,需要的朋友参考一下 问题陈述 对于给定的整数数组,其中所有元素均小于1000000。找到数组中最大素数和最小素数之间的差。 示例 解 使用Eratosthenes筛分法,这是找出小于给定数的所有素数的有效方法。然后,我们将找出最大和最小的质数以获得所需的差。 示例 以下是

  • 这些声明有什么不同? 每种情况下的内存分配情况如何?

  • 我对编程很陌生,在大学里我们学习了不同类型的数字(整数、短数、浮数、双数)。Float和double是浮点数。通常,它们由一个符号+/-、一个尾数和一个指数组成。每个部分占用一定数量的比特。一个浮动最多可以显示小数点后7位,最多可以双倍显示16位。其公式是: 23·log10(2)=23·(log(2)/log(10))≈23·0.3≈7(浮点数小数点后) 52·0.3≈16(双人小数点后) 我知