容纳单个小数的最小mysql类型

don*_*pal 1 mysql database database-design types

数据库新手在这里.我正在设置一个mysql表.其中一个字段将接受0.5的增量值.例如0.5,1.0,1.5,2.0,...... 200.5等

我试过int但它没有捕获小数.

`value` int(10), 
Run Code Online (Sandbox Code Playgroud)

考虑到它只有一个小数,可以容纳这个值的最小类型是什么.

我也在考虑因为十进制总是0.5,如果有的话,我可以将它存储在一个单独的布尔字段中?所以我会改为2个字段.这是一个愚蠢或有点过于复杂的想法吗?我不知道它是否真的能为我节省任何内存,而且现在我可以访问2个字段而不是1个字段

`value` int(10), 
`half` bool,  //or something similar to boolean
Run Code Online (Sandbox Code Playgroud)

你有什么建议吗?第一种选择是否更好,在这种情况下最小的数据类型是什么才能得到0.5?

Seb*_*olm 7

你会想看看这种DECIMAL(P,S)类型.

为此,P是精度,S是比例.您可以将P视为总共有多少位数(小数点前后),S是小数点后面有多少位数.

因此,例如,要存储从-999.99到999.99,您需要5位数的精度和2的标度,因此您可以使用DECIMAL(5, 2).

在你的情况下,你需要一个DECIMAL(n, 1),其中n是小数点前需要多少位数+小数点数1.