• decimal 和 numeric


    GPS平台、网站建设、软件开发、系统运维,找森大网络科技!
    https://cnsendnet.taobao.com
    来自森大科技官方博客
    http://www.cnsendblog.com/index.php/?p=2121

    decimal 和 numeric (Transact-SQL)

    参数

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

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

    p(精度)

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

    (小数位数)

    小数点右边可以存储的十进制数字的位数。 从 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 会导致精度的降低。 从 intsmallinttinyintfloatrealmoney 或 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;

    下面是结果集:

    MyDecimalColumn                         MyNumericColumn

    --------------------------------------- ---------------------------------------

    123.00                                  12345.12000

     

    (1 row(s) affected)

    GPS平台、网站建设、软件开发、系统运维,找森大网络科技!
    https://cnsendnet.taobao.com
    来自森大科技官方博客
    http://www.cnsendblog.com/index.php/?p=2121

  • 相关阅读:
    windows 2008 server下载地址
    C#多线程强制退出程序
    MyBatis insert 返回主键的方法(oracle和mysql)
    JVM内存管理:深入Java内存区域与OOM、深入垃圾收集器与内存分配策略
    xsocket源码解读
    JVM调优总结
    Oracle Exp/Imp 调优
    Oracle create tablespace 创建表空间语法详解
    深入研究java.lang.ThreadLocal类
    oracle 启动关闭以及监听启动关闭命令
  • 原文地址:https://www.cnblogs.com/cnsend/p/15708866.html
Copyright © 2020-2023  润新知