这里是数据库新手。我正在设置一个 mysql 表。其中一个字段将接受以 0.5 为增量的值。例如0.5, 1.0, 1.5, 2.0, .... 200.5, 等等
我试过 int
但它没有捕获小数。
`value` int(10),
考虑到它只是一位小数,可以容纳此值的最小类型是什么。
我也在考虑,因为小数点永远是 0.5(如果有的话),我可以将它存储在一个单独的 bool 字段中吗?所以我会有 2 个字段。这是一个愚蠢的还是有点过于复杂的想法?我不知道它是否真的为我节省了任何内存,而且现在我正在访问 2 个字段而不是 1 个字段,它可能会变慢
`value` int(10),
`half` bool, //or something similar to boolean
你们有什么建议吗?第一个选项更好吗?在那种情况下,最小的数据类型是什么能让我得到 0.5?
最佳答案
您需要查看 DECIMAL(P,S)
类型。
为此,P 是精度,S 是比例。您可以将 P 视为总共有多少位数字(包括小数点前后),将 S 视为小数点后有多少位。
例如,要存储从 -999.99 到 999.99 的数据,您需要 5 位精度和 2 位小数位,因此您需要使用 DECIMAL(5, 2)
.
在您的情况下,您需要 DECIMAL(n, 1)
,其中 n 是小数点前需要的位数 + 1 表示小数。
关于mysql - 容纳单个小数的最小 mysql 类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2708008/