【发布时间】:2011-07-08 18:31:25
【问题描述】:
我需要一个带有百分比的字段
25% => 0.25
30% => 0.30
我需要将该字段设置为哪种数据类型?
您如何确定整数字段等小数字段的范围? (例如 tinyint unsigned 是 0-255)
编辑
我需要在查询中进行一些计算
【问题讨论】:
标签: mysql
我需要一个带有百分比的字段
25% => 0.25
30% => 0.30
我需要将该字段设置为哪种数据类型?
您如何确定整数字段等小数字段的范围? (例如 tinyint unsigned 是 0-255)
我需要在查询中进行一些计算
【问题讨论】:
标签: mysql
DECIMAL[(M[,D])] [UNSIGNED] [ZEROFILL]
对于 MySQL 5.0.3 及更高版本:
压缩的“精确”定点数。米 是总位数( 精度)和 D 是数量 小数点后的位数( 规模)。小数点和(对于 负数)“-”号不是 在 M 中计数。如果 D 为 0,则值有 没有小数点或小数部分。 最大位数 (M) DECIMAL 是 65(从 5.0.3 到 64 5.0.5)。支持的最大小数位数 (D) 为 30。如果 D 是 省略,默认为 0。如果 M 为 省略,默认为 10。
UNSIGNED,如果指定,则不允许 负值。
所有基本计算(+、-、*、/) 使用 DECIMAL 列完成 精度为 65 位。
注意:如果您希望该字段的最大值在 0-99.99 之间,请使用
ALTER TABLE `table_name` ADD `percentage` DECIMAL( 5, 2 ) NOT NULL
【讨论】:
在 plethora of MySQL numeric types 中,FLOAT 或 REAL 可能是您最好的选择(取决于您存储的内容)。
【讨论】:
您应该使用至少 5 位的 FLOAT 字段
【讨论】:
decimal 怎么样? :)
您甚至可以设置精度:
CREATE TABLE yourtable ( percentage decimal(10,2) ... );
【讨论】:
你肯定想要一个DECIMAL 类型; FLOAT 与所有浮点数一样不精确。
【讨论】: