sql server类型之间有什么区别:
float和[numeric](18,10)
答案 0 :(得分:4)
FLOAT
符合IEEE 754
并近似十进制表示。
NUMERIC
精确地以十进制表示(直到声明的精度)。
SELECT CAST(PI() AS FLOAT),
CAST(PI() AS NUMERIC(20, 18)),
CAST(PI() AS NUMERIC(5, 3))
---------------------- --------------------------------------- ---------------------------------------
3,14159265358979 3.141592653589793100 3.142
答案 1 :(得分:2)
numeric是十进制(基数为10)的定点数据类型; float是二进制(base-2)浮点数据类型。
数字[18,10]定义精度小数(小数点左侧和右侧可存储的最大小数位数)18和小数位数(最大小数位数)可以存储在小数点的右边)10。它将9个字节的存储空间用于浮点数的默认8个字节。
答案 2 :(得分:0)
float
是defined作为二进制浮点数。
在二进制计算机中使用它们比使用十进制浮点数更有效(实际上,浮点数上的大多数数学运算都是在硬件中实现的),并且可以非常精确。但是,由于精度是以位而不是小数位来衡量的,因此float
不适合与依赖于数字的十进制表示的算法一起使用(例如,财务应用程序)。
一些好的参考文献是Wikipedia's page on IEEE 754(浮点标准)和David Goldberg的ACM文章What Every Computer Scientist Should Know About Floating-Point Arithmetic。