Mysql双倍长度错误

Dum*_*tru 4 mysql

我想要做百分比列..
我需要写:1.00, 2.00, 99.99, 100.. %
我如何为此使用双精度类型?

我现在有:

Double(4,2)
Run Code Online (Sandbox Code Playgroud)

但是当我在列中写入 100 时,出现错误:

数值超出范围:1264 列的值超出范围

Der*_*lin 5

查看这里的答案(double并且decimal具有相同的语法)或MySQL 手册

双[(男,女)]

M 是总位数,D 是小数点后的位数。如果省略 M 和 D,则值将存储到硬件允许的限制内。双精度浮点数精确到大约 15 位小数。

简而言之,DOUBLE(4,2)就是最多4位,小数点后2位。因此,要支持两位小数,直到100,您需要:

double(5,2) unsigned
Run Code Online (Sandbox Code Playgroud)

请注意,这unsigned不是强制性的,但如果您知道不需要负值,则可以提高性能和安全性。