sqldecimal(MySQL数据类型DECIMAL用法)
一、“decimal”是什么类型的MySQL
Decimal变量存储为 96位无符号的整型形式,并除以一个 10的幂数。
变比因子为 0的情形下,最大的可能值为+/-79,228,162,514,264,337,593,543,950,335。
在有 28个小数位的情况下,最大值为+/-7.9228162514264337593543950335,而最小的非零值为+/-0.0000000000000000000000000001。
Decimal数据类型只能在 Variant中使用,不能声明一变量为 Decimal的类型。
SQL表中用的数据有整型,小数型,等等。decimal就是小数型,即此列允许小数的输入。
和浮点型差不多,浮点数是直接把小数转化为二进制,二多数小数转化为二进制是有误差的。
二、Mysql中设置小数点用什么数据类型 decimal
同事问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的数字,可以正确插入
三、sql中decimal的用法
decimal(18,0);18是定点精度,0是小数位数。
decimal(a,b)
a指定指定小数点左边和右边可以存储的十进制数字的最大个数,最大精度38。
b指定小数点右边可以存储的十进制数字的最大个数。小数位数必须是从 0到 a之间的值。默认小数位数是 0。
Decimal为SQL Server、MySql等数据库的一种数据类型,不属于浮点数类型,可以在定义时划定整数部分以及小数部分的位数。使用精确小数类型不仅能够保证数据计算更为精确,还可以节省储存空间,例如百分比使用decimal(4,2)即可。存储数据范围是:-10^38~10^38-1的固定精度和小数位的数字。一个decimal类型的数据占用了2~17个字节。
在C#里decimal表示 128位数据类型。double相比,decimal类型具有更高的精度和更小的范围,它适合于财务和货币计算。
扩展资料:
Decimal数据类型可以在powerBuilder中使用。直接在编写控件的时候使用就可以了。比如:当编写一个Clicked事件脚本时就可以decimal r这样使用。
Decimal数据类型可以在Visual Studio编辑器中使用,只要在一个浮点类型的值后加一个大写或小写的M,则编辑器会认为这个浮点类型的值是一个Decimal类型。这种128位高精度十进制数表示法通常用在财务计算中。要注意的是,在.NET环境中,计算该类型的值会有性能上的损失,因为它不是基本类型。
decimal[(p[, s])] and numeric[(p[, s])]
固定有效位数和小数位数的数字。当使用最大有效位数时,有效值是从- 10^38+1到 10^38- 1。decimal的 SQL-92同义字是 dec和 dec(p, s)。numeric的功能相当於 decimal。
参考资料:百度百科 Decimal