带小数的字段 - 要使用哪种数据类型?

时间:2011-07-08 18:31:25

标签: mysql

我需要一个百分比字段

25% => 0.25
30% => 0.30

我需要将字段设置为哪种数据类型?

如何确定带整数字段等小数的字段范围? (例如,tinyint unsigned是0-255)

修改

我需要在查询中进行一些计算

5 个答案:

答案 0 :(得分:2)

使用DECIMAL DATATYPE

DECIMAL[(M[,D])] [UNSIGNED] [ZEROFILL] 
  

对于MySQL 5.0.3及更高版本:

     

打包的“精确”定点数。中号   是总位数(   精度)和D是数字   小数点后的数字(   规模)。小数点和(对于   负数)“ - ”符号不是   如果D为0,则值为   没有小数点或小数部分。   最大位数(M)   DECIMAL是65(64从5.0.3到   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

答案 1 :(得分:1)

plethora of MySQL numeric types中,FLOATREAL可能是您最好的选择(取决于您要存储的内容)。

答案 2 :(得分:0)

你应该使用至少5位的FLOAT字段

答案 3 :(得分:0)

decimal怎么样? :)

您甚至可以设置精度:

CREATE TABLE yourtable ( percentage decimal(10,2) ... ); 

答案 4 :(得分:0)

你肯定想要DECIMAL类型; FLOAT遭受与所有花车相同的不精确性。