`

关于mysql中的decimal类型

阅读更多
                  关于mysql中的decimal类型
     一般赋予浮点列的值被四舍五入到这个列所指定的十进制数。如果在一个FLOAT(8, 1)的列中存储1. 2 3 4 5 6,则结果为1. 2。如果将相同的值存入FLOAT(8, 4) 的列中,则结果为1. 2 3 4 6。这表示应该定义具有足够位数的浮点列以便得到尽可能精确的值。如果想精确到千分之一,那就不要定义使该类型仅有两位小数。
  浮点值的这种处理在MySQL3.23 中有例外,FLOAT(4) 和FLOAT(8) 的有所变化。这两种类型现在为单精度( 4 字节)和双精度( 8 字节)的类型,在其值按给出的形式存放(只受硬件的限制)这一点上说,这两种类型才是真正的浮点类型。

  DECIMAL 类型不同于FLOAT和DECIMAL,其中DECIMAL 实际是以串存放的。DECIMAL 可能的最大取值范围与DOUBLE 一样,但是其有效的取值范围由M 和D 的值决定。如果改变M 而固定D,则其取值范围将随M 的变大而变大。表2 - 7的前三行说明了这一点。如果固定M 而改变D,则其取值范围将随D 的变大而变小(但精度增加)。表2 - 7的后三行说明了这一点。

  给定的DECIMAL 类型的取值范围取决于MySQL的版本。对于MySQL3.23 以前的版本,DECIMAL(M, D) 列的每个值占用M 字节,而符号(如果需要)和小数点包括在M 字节中。因此,类型为DECIMAL(5, 2) 的列,其取值范围为-9.99 到9 9 . 9 9,因为它们覆盖了所有可能的5 个字符的值。

  正如MySQL3.23 一样,DECIMAL 值是根据ANSI 规范进行处理的, ANSI 规范规定DECIMAL(M, D) 必须能够表示M 位数字及D 位小数的任何值。例如, DECIMAL(5, 2) 必须能够表示从-999.99 到999.99 的所有值。而且必须存储符号和小数点,因此自MySQL3.23以来DECIMAL 值占M + 2 个字节。对于DECIMAL(5, 2),“最长”的值(- 9 9 9 . 9 9)需要7个字节。在正取值范围的一端,不需要正号,因此MySQL利用它扩充了取值范围,使其超

  过了ANSI 所规范所要求的取值范围。如DECIMAL(5, 2) 的最大值为9 9 9 9 . 9 9,因为有7 个字节可用。

  简而言之,在MySQL3.23 及以后的版本中,DECIMAL(M, D) 的取值范围等于更早版本中的DECIMAL(M + 2, D) 的取值范围。在MySQL的所有版本中,如果某个DECIMAL 列的D 为0,则不存储小数点。这样做的结果是扩充了列的取值范围,因为过去用来存储小数点的字节现在可用来存放其他数字了啊。
分享到:
评论

相关推荐

    MySQL中decimal类型用法的简单介绍

    MySQL中的decimal类型是一种用于存储精确数值的类型,它主要用于处理货币、精确计算或者任何需要无误差的数值存储的场景。与FLOAT和DOUBLE等浮点数类型不同,decimal类型以字符串形式存储,确保了数值的精确性,避免...

    MySQL中Decimal类型和Float Double的区别(详解)

    MySQL中存在float,double等非标准数据类型,也有decimal这种标准数据类型。 其区别在于,float,double等非标准类型...幸好mysql提供了两个数据类型:decimal,这种数据类型可以轻松解决上面的问题:decimal类型被 MySQ

    详解MySQL数据类型DECIMAL(N,M)中N和M分别表示的含义

    MySQL中的DECIMAL数据类型用于存储高精度的十进制数,它在数据库设计中尤其重要,因为这种数据类型可以确保精确存储货币和其他需要精确计算的数值。标题和描述提到的"DECIMAL(N,M)"中,N和M是两个关键参数,它们定义...

    Java数据类型和MySql数据类型对应一览

    在 MySql 中,也有其他类型,如 YEAR、DECIMAL 等类型。其中,YEAR 类型用于存储年份,DECIMAL 类型用于存储小数。 Java 数据类型和 MySql 数据类型之间存在着一定的对应关系。了解这些对应关系对于开发者来说非常...

    Java中数据类型和MYSQL中数据类型的对比

    Java 和 MySQL 数据类型之间的对比是理解数据库操作和应用程序开发中数据处理的关键。这两种语言的数据类型在功能和使用上都有所不同,尽管它们都用于存储和处理数据,但各自有着特定的适用场景和特点。 首先,Java...

    MySQL数据类型中DECIMAL的用法实例详解

    在MySQL中,DECIMAL类型通常表示为DECIMAL(M, D),其中M代表总数字的个数,包括整数部分和小数部分,而D则表示小数点后的位数。例如,DECIMAL(5, 2)可以存储最多5位数字,其中2位是小数。这意味着它可以存储从-999....

    Java数据类型和MySql数据类型对应表

    在 Java 编程中,了解 Java 数据类型和 MySql 数据类型的对应关系非常重要。这是因为在 Java 应用程序中,我们经常需要与数据库进行交互,而 MySql 是一种常用的关系数据库管理系统。在本文中,我们将详细介绍 Java ...

    MySql于Java数据类型对应列表

    本文将详细介绍MySQL中的各种数据类型及其在Java中的对应类型,并解释这些类型的具体含义以及它们在实际应用中的作用。 #### 数据类型对照表解析 ##### 1. VARCHAR (可变长度字符串) **显示长度:** L+N **数据库...

    MySQL所有数据类型.pdf

    MySQL 数据类型是指在 MySQL 数据库中存储数据的方式,它决定了数据的存储格式、大小和范围。了解 MySQL 数据类型非常重要,因为它直接影响数据库的性能、可维护性和安全性。本篇文章将详细介绍 MySQL 的所有数据...

    深入分析MySQL数据类型 DECIMAL

    当我们需要存储小数,并且有精度要求,比如存储金额时,通常会考虑使用DECIMAL字段类型,可能大部分同学只是对DECIMAL类型略有了解,其中的细节还不甚清楚,本篇文章将从零开始,为你讲述DECIMAL字段类型的使用场景...

    mysql数据类型转换

    在MySQL数据库中,数据类型转换是一项非常重要的技能。它可以帮助我们灵活地处理不同类型的数据,尤其是在进行数据检索或处理时,经常需要将一种数据类型转换为另一种数据类型。本文将详细介绍MySQL中的数据类型转换...

    MySQL数据类型全掌握

    4. **浮点数类型**: Oracle中的`NUMBER(7,2)`相当于MySQL中的`DECIMAL`。 - Oracle: `SAL NUMBER(7,2)` - MySQL: `SAL DECIMAL(7,2)` #### 四、总结 通过本文的介绍,我们不仅了解了MySQL中各种数据类型的特点和...

    mysql的字段类型及简单的操作命令

    MySQL 中的字段类型是指数据库表中的每个字段可以存储的数据类型。了解 MySQL 的字段类型和基本操作命令是每个数据库管理员和开发人员的必备知识。 数值类型 MySQL 中有多种数值类型,每种类型都有其特点和使用...

    mysql数据类型

    MySQL 数据类型是指在 MySQL 中存储数据的格式,包括整型、浮点型、定点型、字符串、日期时间型、枚举型等多种类型。下面将对 MySQL 数据类型进行详细的介绍。 整型 MySQL 中的整型包括 tinyint、smallint、...

Global site tag (gtag.js) - Google Analytics