TSQL - Decimal, Numeric, Float & Real

在SQL Server中数值类型有多种不同的分法,其中一种就是:精确类型近似类型。其中近似类型其实只有两种数据类型:Float和Real。

在我们的数据库设计中如果设计到需要存储非整形数值的时候,很多时候我们都会疑惑到底需要用下面数据类型的哪个:

  • Float
  • Real
  • Decimal
  • Numeric

说开来其实很简单,上面4个类型其实只有两种类型:

1)     Float & Real

他们都是表示浮点数的数值类型,而且是一种近似数值表示,Real是Float的一种特殊形式。

Float的语法如下:

float(n) : n为用于存储float数值尾数的位数(以科学计数法表示),确定了n就确定了精度和存储大小。N位于1到53之间,默认为53


N的值


精度


存储大小


1 – 24


7位数


4字节


25 - 53


15位数


8字节

Real等同于float(24)

2)     Decimal & Numeric

Numeric在功能上等价与Decimal,所以我们只谈论Decimal。Decimal表示带固定精度和小数位数的精确数值,它的语法如下:

Decimal(p [,s])

P表示精度,即最多可以存储的十进制数字的总位数,包括小数点左边和右边的位数,它可以使1到38之间的任意值,默认为18

S表示小数点右边的十进制数字的最大位数

时间: 2024-10-12 14:04:39

TSQL - Decimal, Numeric, Float & Real的相关文章

SqlServer中decimal(numeric )、float 和 real 数据类型的区别[转]

decimal(numeric )             同义,用于精确存储数值 float 和 real                      不能精确存储数值   decimal 数据类型最多可存储 38 个数字,所有数字都能够放到小数点的右边.decimal 数据类型存储了一个准确(精确)的数字表达法:不存储值的近似值. 定义 decimal 的列.变量和参数的两种特性如下: p   小数点左边和右边数字之和,不包括小数点.如 123.45,则 p=5,s=2. 指定精度或对象能够控

c#中decimal ,double,float的区别

转自:http://www.cnblogs.com/lovewife/articles/2466543.html 单精度就是指4个字节的浮点数,即float双精度就是指8个字节的浮点数,即double decimal是高精度 浮点型 Name CTS Type Description Significant Figures Range (approximate) float System.Single 32-bit single-precision floating point 7 ±1.5 ×

1不等于1?numeric、decimal、float 和 real 数据类型的区别

大家有没有在SQL中遇见1不等于1(1<>1)的情形!?下面会有一个例子演示这个情形. 先简单介绍一下标题中的四种数值数据类型. 在T-SQL中,numeric和decimal是精确数值数据类型,而float和real是近似数值数据类型. numeric和decimal是等同的.real等同于float(24). 在定义一个float(n)类型列的时候,如果明确指定了n的值,例如 val float(10) 那么当n的值在1-24之间,系统会将该列(val)标记为real类型:当n的值在25-

Fixed-Point Types (Exact Value) - DECIMAL, NUMERIC

DECIMAL(M,D) The DECIMAL and NUMERIC types store exact numeric data values. These types are used when it is important to preserve(保存) exact precision(精度), for example with monetary data. In MySQL, NUMERIC is implemented(实现) as DECIMAL, so the followi

iOS Objective-C How to get 2 decimal rounded float value?

Have you tried this? CGFloat val = 37.777779;CGFloat rounded_down = floorf(val * 100) / 100; /* Result: 37.77 */CGFloat nearest = floorf(val * 100 + 0.5) / 100; /* Result: 37.78 */CGFloat rounded_up = ceilf(val * 100) / 100; /* Result: 37.78 */source

Decimal、 Float、 Double 使用

一.Java 1.float型定义的数据末尾必须 有"f "或"F",为了和double区别.例float x=123.456f,  y=2e20f; public static void main(String[] args) { System.out.println(0.08f + 0.01f); } 输出: 0.089999996 2.精确计算中我们要用java.math.BigDecimal class DecimalUtil{ private static

decimal, double, float

refers : http://blog.leanote.com/post/weibo-007/mysql_float_double_decimal https://brooch.me/2016/11/17/%E6%B5%AE%E7%82%B9%E6%95%B0%E8%AE%A1%E7%AE%97%E4%B8%BA%E4%BB%80%E4%B9%88%E4%B8%8D%E7%B2%BE%E7%A1%AE/ https://frontstuff.io/how-to-handle-monetary-

[ SQLServer ] 數字類型的欄位細節 - 轉載

[MSSQL] 欄位開立(2) - decimal, numeric, float, real, money 的抉擇 https://dotblogs.com.tw/henryli/2015/06/13/151557 資料庫黑洞部落格 https://dotblogs.com.tw/henryli/1

mysql数据库操作(1)

1.mysql 数据库备份: 语法: MYSQLDUMP -uUSER -pPASS DataBase > Path 其中:USER 是用户名,PASS 是密码,DataBase 是数据库名, Path 是数据库备份存储的位置. 备注:1)执行备份是在系统条件下,而非 mysql 状态下. 2)请使用正确的文件地址,在文件地址中要使用双斜杠 "\\" 来代替单斜杠 "\". 2.mysql 数据库的恢复 语法: mysql -uUSER -pPASS Data