[转帖]decimal,float和double的区别是什么?

decimal,float,double,区别,什么 · 浏览次数 : 0

小编点评

**数据类型区分** | 数据类型 | 存储形式 | 精度 | 占内存 | 运算速度 | |---|---|---|---|---| | float | 32位二进制 | 6位 | 4个字节 | 较慢 | | double | 64位二进制 | 15位 | 8个字节 | 较慢 | | decimal | 128位高精度浮点数 | 无 | 3个字节 | 相比FLOAT和DOUBLE | **结论** * `decimal` 类型比 `float` 和 `double` 类型具有更高的精度。 * `decimal` 类型通常用于金融运算。 * `decimal` 类型比 `float` 和 `double` 类型具有更低的占内存和处理速度。

正文

https://zhuanlan.zhihu.com/p/352503879

 

今天复习mysql理论知识,在看常用数据类型的时候发现float和decimal类型都是表示小数,就展开搜索学习了一下区别,分享给大家:

表示小数的一共有三种类型:float是单精度,double是双精度,decimal是数字型,它们所占的内存空间不一样,表示的位数也不一样。

1、精度:

  • float单精度小数部分能精确到小数点后面6位,用 32 位二进制进行描述
  • double双精度小数部分能精确到小数点后的15位,,用64位二进制进行描述,比float型更精确

2、占内存及处理速度:

  • float单精度内存占4个字节
  • double双精度内存占8个字节,是float型的两倍,且运算速度也比float慢得多

结论:虽然double型比float型精度高,但由于占内存更大,运算速度慢,且即使是double依然会存在精度损失的问题,且不会报告任何的错误,也不会有任何的异常产生。所以如果涉及到小数计算的话,我们会用到下边的decimal型:

1、精度:

decimal用l128位高精度浮点数,常用于金融运算,不会出现浮点数计算的误差

2、占内存及处理速度:

decimal类型的数据存储形式是,将每9位十进制数存储为4个字节

举个例子:
1)字段decimal(5,2),5-2=3,其中小数部分为2,对应上表1个字节,整数部分为3,对应上表2个字节
2)字段decimal(20,6),20-6=14,其中小数部分为6,就对应上表中的3个字节,而整数部分为14,14-9=5,就是4个字节再加上表中的3个字节

结论:decimal型比浮点型计算精度要高,通常使用更少的空间。所以通常我们在设置小数的时候,都是用的decimal类型。

与[转帖]decimal,float和double的区别是什么?相似的内容:

[转帖]decimal,float和double的区别是什么?

https://zhuanlan.zhihu.com/p/352503879 今天复习mysql理论知识,在看常用数据类型的时候发现float和decimal类型都是表示小数,就展开搜索学习了一下区别,分享给大家: 表示小数的一共有三种类型:float是单精度,double是双精度,decimal是

[转帖]decimal and numeric (Transact-SQL)

https://learn.microsoft.com/en-us/sql/t-sql/data-types/decimal-and-numeric-transact-sql?view=sql-server-ver16 Applies to: SQL Server Azure SQL Databas

[转帖]MySQL Decimal 的实现方法

码: 背景 数字运算在数据库中是很常见的需求, 例如计算数量、重量、价格等, 为了满足各种需求, 数据库系统通常支持精准的数字类型和近似的数字类型. 精准的数字类型包含 int, decimal 等, 这些类型在计算过程中小数点位置是固定的, 其结果和行为比较可预测. 当涉及钱时, 这个问题尤其重要

[转帖]MySQL: Convert decimal to binary

Last Update:2018-12-05 Source: Internet Author: User Tags decimal to binary mysql code Developer on Alibaba Coud: Build your first app with APIs, SDKs

[转帖]MySQL数据类型(decimal的存储大小)

本来还以为MySQL的数据类型挺简单的,没想到竟然有很多坑,容我仔细道来 MySQL数据类型 整数类型(注意是字节) 浮点型(重点关注decimal) 字符型(注意这是4.x版本的定义,5.x以后已经将其中的字节转换成字符了) 日期类型 MySQL日期类型表示方法与字符串的表示方法相同(用单引号括起

[转帖]MySQL定点数类型DECIMAL用法详解

https://www.cnblogs.com/danielzzz/p/16824214.html 一、MySQL DECIMAL 的使用 DECIMAL 数据类型用于在数据库中存储精确的数值,我们经常将该数据类型用于保留准确精确度的列,例如会计系统中的货币数据。 要定义数据类型为DECIMAL的列

[转帖]12.24.2 DECIMAL Data Type Characteristics

https://dev.mysql.com/doc/refman/8.0/en/fixed-point-types.html This section discusses the characteristics of the DECIMAL data type (and its synonyms),

[转帖]

Linux ubuntu20.04 网络配置(图文教程) 因为我是刚装好的最小系统,所以很多东西都没有,在开始配置之前需要做下准备 环境准备 系统:ubuntu20.04网卡:双网卡 网卡一:供连接互联网使用网卡二:供连接内网使用(看情况,如果一张网卡足够,没必要做第二张网卡) 工具: net-to

[转帖]

https://cloud.tencent.com/developer/article/2168105?areaSource=104001.13&traceId=zcVNsKTUApF9rNJSkcCbB 前言 Redis作为高性能的内存数据库,在大数据量的情况下也会遇到性能瓶颈,日常开发中只有时刻

[转帖]ISV 、OSV、 SIG 概念

ISV 、OSV、 SIG 概念 2022-10-14 12:29530原创大杂烩 本文链接:https://www.cndba.cn/dave/article/108699 1. ISV: Independent Software Vendors “独立软件开发商”,特指专门从事软件的开发、生产、