IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> MySQL数据库(8):数据类型-小数 -> 正文阅读

[大数据]MySQL数据库(8):数据类型-小数

数据类型-小数

浮点型:

又称为精度类型,是一种可能丢失精度的数据类型,数据可能不那么准确

简单的举例

所有位都为1

整数    1 1 1 1 1 1 1 1   都存整数表示具体数据值
浮点数  1 1 1 | 1 1 1 1 1  10^7 * 数据值,其中3位用来存指数

float 单精度类型

4字节存储,7位精度,表示数据范围比整数大得多

基本语法

float 表示不指定小数位的浮点数
float(M, D)表示一共存储M个有效数字,其中小数部分占D位

例如:

float(10, 2) 整数部分为8位,小数部分为2位

示例

create table my_float(
    f1 float,
    f2 float(10, 2)
);

desc my_float;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| f1    | float       | YES  |     | NULL    |       |
| f2    | float(10,2) | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+

insert into 
my_float (f1, f2)
values(123.123, 12345678.90);

-- 如果精度丢失,按照四舍五入方式计算
select * from my_float;
+---------+-------------+
| f1      | f2          |
+---------+-------------+
| 123.123 | 12345679.00 |
+---------+-------------+

-- 超出指定位数
insert into 
my_float (f1, f2)
values(123.123456789, 123456789.90);
ERROR 1264 (22003): Out of range value for column 'f2' at row 1

-- 用户不能直接插入超过指定整数部分的长度,但是如果是系统自动进位导致,可以允许
insert into 
my_float (f1, f2)
values(123.123456789, 99999999.99);

select * from my_float;
+---------+--------------+
| f1      | f2           |
+---------+--------------+
| 123.123 |  12345679.00 |
| 123.123 | 100000000.00 |
+---------+--------------+

-- 浮点数可以采用科学计数法来存储数据
insert into 
my_float (f1, f2)
values(123.123, 10e5);

select * from my_float;
+---------+--------------+
| f1      | f2           |
+---------+--------------+
| 123.123 |  12345679.00 |
| 123.123 | 100000000.00 |
| 123.123 |   1000000.00 |
+---------+--------------+

double 双精度

8个字节存储,表示范围更大,精度有15位左右

定点数decimal

能够保证数据精确的小数(小数部分可能不精确,超出长度会四舍五入),整数部分一定精确

decimal(M, D), M表示总长度,最大值不能超过65,D代表小数部分长度,最长不能超过30

create table my_decimal(
    float_data float(10, 2),
    decimal_data decimal(10, 2)
);

mysql> desc my_decimal;
+--------------+---------------+------+-----+---------+-------+
| Field        | Type          | Null | Key | Default | Extra |
+--------------+---------------+------+-----+---------+-------+
| float_data   | float(10,2)   | YES  |     | NULL    |       |
| decimal_data | decimal(10,2) | YES  |     | NULL    |       |
+--------------+---------------+------+-----+---------+-------+

insert into 
my_decimal(float_data, decimal_data)
values(12345678.90, 12345678.90);

mysql> select * from my_decimal;
+-------------+--------------+
| float_data  | decimal_data |
+-------------+--------------+
| 12345679.00 |  12345678.90 |
+-------------+--------------+

insert into 
my_decimal(float_data, decimal_data)
values(99999999.99, 99999999.99);


mysql> select * from my_decimal;
+--------------+--------------+
| float_data   | decimal_data |
+--------------+--------------+
|  12345679.00 |  12345678.90 |
| 100000000.00 |  99999999.99 |
+--------------+--------------+

-- 定点数,整数部分被进位,会抛出异常
insert into 
my_decimal(float_data, decimal_data)
values(99999999.99, 99999999.999);
ERROR 1264 (22003): Out of range value for column 'decimal_data' at row 1
  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-05-16 11:21:36  更:2022-05-16 11:21:55 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/30 14:31:46-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码