有一个艰难的时间决定FLOAT,DOUBLE或DECIMAL

时间:2012-03-20 18:05:10

标签: mysql

目前使用MySQL版本5.1.6

这是我的第一个真实世界版本,到目前为止我实际上已经享受它;但是,我现在仍然坚持关于字段数据类型的决定,并希望有人可以为我排序。

我基本上有10个字段,它们都是不同的测试结果。数字范围从-100到100,并且在实际点之后可以有一个小数点。

例如,-5.1,0,1,16.3,99.2和100都是可能的数据。根据我的阅读,我们应该使用DECIMAL来表示我们通常测量的并且是精确的(这些是),而FLOAT和DOUBLE是近似值,我并不是真的想要(虽然我确信在这个层次上,近似值)如果存在则非常小。)

如果我使用DECIMAL,如果使用的话,是否必须在开头包含“ - ”空格? I.E,我会使用DECIMAL(4,1)还是DECIMAL(5,1)还是我离开这里?我可能会过分思考这一点。

2 个答案:

答案 0 :(得分:6)

DECIMAL(4,1)就足够了,需要包含符号数

更多信息:http://dev.mysql.com/doc/refman/5.1/en/precision-math-decimal-changes.html

  

例如,DECIMAL(3,0)列支持-999到999

的范围

十进制将确实是满足您需求的最佳选择。 Float和Double可以给你丑陋的数字(例如0.2不能表示为浮点数,你得到0.19999999)

答案 1 :(得分:4)

否定符号在计算中不算作数字,因此DECIMAL(4,1)应该没问题。

编辑:这似乎也是适合您用途的正确字段。试试吧!