zoukankan      html  css  js  c++  java
  • decimal 和 numeric (Transact-SQL)

    decimal(18,0)
    18是定点精度,0是小数位数。
    decimal(a,b)
    a指定指定小数点左边和右边可以存储的十进制数字的最大个数,最大精度38。
    b指定小数点右边可以存储的十进制数字的最大个数。小数位数必须是从 0 到 a之间的值。默认小数位数是 0。


    带固定精度和小数位数的数值数据类型.

     
    参数
    decimal[ (p[ ,s] )] 和 numeric[ (p[ ,s] )]

    固定精度和小数位数。  使用最大精度时,有效值的范围为 - 10^38 +1 到 10^38 - 1。   decimal 的 ISO 同义词为 dec 和 dec(p、s)。  numeric 在功能上等价于 decimal。  

    p(精度)

    最多可以存储的十进制数字的总位数,包括小数点左边和右边的位数。  该精度必须是从 1 到最大精度 38 之间的值。  默认精度为 18。  

    s (小数位数)

    小数点右边可以存储的十进制数字的位数。  从 p 中减去此数字可确定小数点左边的最大位数。  小数点右边可以存储的十进制数字的最大位数。  小数位数必须是从 0 到 p 之间的值。  仅在指定精度后才可以指定小数位数。  默认的小数位数为 0;因此,0 <= s <= p。  最大存储大小基于精度而变化。  

    精度

    存储字节数

    1 - 9

    5

    10-19

    9

    20-28

    13

    29-38

    17

    转换 decimal 和 numeric 数据

    对于 decimal 和 numeric 数据类型,SQL Server 会将精度和小数位数的每个特定组合视为不同的数据类型。  例如,将 decimal(5,5) 和decimal(5,0) 视为不同的数据类型。  

    在 Transact-SQL 语句中,带有小数点的常量将自动转换为 numeric 数据值,而且使用必需的最小精度和小数位数。  例如,常量 12.345 将被转换为精度为 5,小数位数为 3 的 numeric 值。  

    从 decimal 或 numeric 转换为 float 或 real 会导致精度的降低。  从 int、smallint、tinyint、float、real、money 或 smallmoney 转换为decimal 或 numeric 会导致溢出。  

    默认情况下,将数字转换为较低精度和小数位数的 decimal 或 numeric 值时,SQL Server 会进行舍入。  但如果 SET ARITHABORT 选项为 ON,则发生溢出时,SQL Server 会产生错误。  若仅降低精度和小数位数,则不会产生错误。  

    在将 float 值或实数值转换为 decimal 或 numeric 类型时,decimal 值不会超过 17 位小数。  任何小于 5E-18 的 float 值总是会转换为 0。  

    示例
     
     

    以下示例将使用 decimal 和 numeric 数据类型创建一个表。  值将插入每一列,并使用 SELECT 语句返回结果。  

     
     
    CREATE TABLE dbo.MyTable
    (
      MyDecimalColumn decimal(5,2)
     ,MyNumericColumn numeric(10,5)
    
    );
    
    GO
    INSERT INTO dbo.MyTable VALUES (123, 12345.12);
    GO
    SELECT MyDecimalColumn, MyNumericColumn
    FROM dbo.MyTable;
    
    

    Here is the result set.

     
     
    MyDecimalColumn                         MyNumericColumn
    --------------------------------------- ---------------------------------------
    123.00                                  12345.12000
    
    (1 row(s) affected)
    
    
  • 相关阅读:
    WPF-模拟动态更换logo的过程(3),图片正在使用中,下载同名图片无法覆盖的问题。
    WPF-模拟动态更换logo的过程(2),如何把网上的图片下载到指定目录。
    WPF-模拟动态更换logo的过程(1),如何获取程序的根目录。
    Prism——Window 必须是树的根目录。不能将 Window 添加为 Visual 的子目录。
    一款常用的截图工具(能够截gif动图)
    WPF-带有GridView的ListView样式
    WPF-自定义实现步骤条控件
    分页总页数计算公式
    FileZilla:425 Can't open data connection for transfer of解决办法
    查看window重启日志
  • 原文地址:https://www.cnblogs.com/XACOOL/p/5434994.html
Copyright © 2011-2022 走看看