Mysql中设置小数点用什么数据类型 decimal

mysql中小数点用decimal(x,y)进行存储,示例如下,1、创建测试表,create table test_decimal(id int, fee_value decimal(20,3));2、插入测试数据,insert into test_decimal values(1,12.2);insert into test_decimal values(3,33.789);insert into test_decimal values(6666,555.332);3、查询...
Mysql中设置小数点用什么数据类型 decimal
要求精度高就用decimal

审题错了...
简单写下区别:
float:浮点型,含字节数为4,32bit,数值范围为-3.4E38~3.4E38(7个有效位)
double:双精度实型,含字节数为8,64bit数值范围-1.7E308~1.7E308(15个有效位)
decimal:数字型,128bit,不存在精度损失,常用于银行帐目计算。(28个有效位)

numberic === decimal

float f = 345.98756f;//结果显示为345.9876,只显示7个有效位,对最后一位数四舍五入。
double d=345.975423578631442d;//结果显示为345.975423578631,只显示15个有效位,对最后一位四舍五入。
注:float和double的相乘操作,数字溢出不会报错,会有精度的损失。
decimal dd=345.545454879.....//可以支持28位,对最后一位四舍五入。
注:当对decimal类型进行操作时,数值会因溢出而报错。2017-12-09
mysql中小数点用decimal(x,y)进行存储,
示例如下,
1、创建测试表,create table test_decimal(id int, fee_value decimal(20,3));

2、插入测试数据,
insert into test_decimal values(1,12.2);
insert into test_decimal values(3,33.789);
insert into test_decimal values(6666,555.332);

3、查询表中所有记录,select * from test_decimal t;

4、小数转整,可以用floor或round函数,select t.*, floor(fee_value) as fee1, round(fee_value) fee2 from test_decimal t;

2019-11-15
同事问MySQL数据类型DECIMAL(N,M)中N和M分别表示什么含义,M不用说,显然是小数点后的小数位数,但这个N究竟是小数点之前的最大位数,还是加上小数部分后的最大位数?这个还真记不清了。于是乎,创建测试表验证了一番,结果如下:
测试表,seller_cost字段定义为decimal(14,2)
CREATE TABLE `test_decimal` (
`id` int(11) NOT NULL,
`seller_cost` decimal(14,2) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf81234

起初,表中内容为空
mysql> select * from test_decimal;
Empty set (0.00 sec)12

插入整数部分长度为14的数字,报超出列范围的错误
mysql> insert into test_decimal(id,seller_cost) values(1,12345678901234);
ERROR 1264 (22003): Out of range value for column 'seller_cost' at row 112

插入整数部分长度为12的数字,可以正确插入2017-10-08
Decimal(n,m)表示数值中共有n位数,其中整数n-m位,小数m位。例:decimal(10,6),数值中共有10位数,其中整数占4位,小数占6位。
例:decimal(2,1),此时,插入数据“12.3”、“12”等会出现“数据溢出错误”的异常;插入“1.23”或“1.2345...”会自动四舍五入成“1.2”;插入“2”会自动补成“2.0”,以确保2位的有效长度,其中包含1位小数。

p (有效位数)
可储存的最大十进位数总数,小数点左右两侧都包括在内。有效位数必须是 1 至最大有效位数 38 之间的值。预设有效位数是 18。
s (小数位数)
小数点右侧所能储存的最大十进位数。小数位数必须是从 0 到 p 的值。只有在指定了有效位数时,才能指定小数位数。预设小数位数是 0;因此,0 <= s <= p。最大储存体大小会随著有效位数而不同。2017-12-09
用decimal,精度高2017-10-05
mengvlog 阅读 7 次 更新于 2025-07-20 05:23:16 我来答关注问题0
  •  翡希信息咨询 mysql中设置小数点用什么数据类型decimal

    在MySQL中设置小数点使用的是Decimal数据类型。以下是关于MySQL中Decimal数据类型的详细说明:Decimal数据类型的定义:Decimal数据类型用于存储精确的小数值。它能够存储指定长度和精度的小数,小数点后的位数可以精确到指定的范围内。Decimal数据类型的结构:Decimal类型由两个主要参数定义:精度和小数点后的位数。

  •  宜美生活妙招 Mysql中设置小数点用什么数据类型?decimal

    在MySQL中,设置小数点使用的数据类型是decimal。以下是关于decimal数据类型的详细说明:语法:decimal,其中x代表总位数,y代表小数点后的位数。用途:decimal数据类型专门用于存储带有小数点的数值,确保数值的精确性。示例:创建一个名为test_decimal的测试表,其结构包括一个整数id和一个decimal类型字段fee_...

  • FLOAT和DOUBLE也是MySQL中用于存储小数的数据类型之一。它们也允许存储非常大的数字,但是它们不保留精确的小数位数。FLOAT和DOUBLE数据类型的语法是:FLOAT(p)DOUBLE(p)其中,p是数字的精度。它们默认精确到6位小数。3. 设置小数位数 在MySQL中,可以通过ALTER TABLE语句修改表中列的数据类型。例如,要将表...

  • MySQL中小数存储推荐使用DECIMAL或FLOAT类型数据。解释:1. DECIMAL类型 DECIMAL数据类型用于存储精确的小数值。在数据库中以字符串的形式存储,这样可以确保数值的精确性不会因为浮点运算的近似值而导致。如果你需要存储的是精确的小数,比如金融计算中的金额,那么应该选择DECIMAL类型。你可以指定总的数字位数...

  •  文暄生活科普 Mysql中设置小数点用什么数据类型 decimal

    在MySQL中,处理小数点的存储任务通常使用decimal数据类型。decimal(x,y)这一语法用于指定小数的精度,其中x代表总位数,y代表小数点后的位数。下面是一段关于如何在MySQL中使用decimal类型的实际操作示例:首先,创建一个名为test_decimal的测试表,其结构包括一个整数id和一个decimal类型字段fee_value,...

檬味博客在线解答立即免费咨询

mySQL相关话题

Copyright © 2023 WWW.MENGVLOG.COM - 檬味博客
返回顶部