首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL数据类型混淆。文中写着“但不应该超过M−2”。

MySQL数据类型混淆。文中写着“但不应该超过M−2”。
EN

Stack Overflow用户
提问于 2017-06-01 06:20:37
回答 1查看 30关注 0票数 1

在MySQL多年期上面写着

最大可能值为30,但不应大于M−2。

但是,我尝试了以下代码,但它仍然有效:

代码语言:javascript
复制
create table test (
a float(2,1),
);

insert into test(a) values (1.2);

select * from test;

在这种情况下,十进制精度是1,它明显大于M-2=2-2=0

我的困惑是如何解释男人。

EN

回答 1

Stack Overflow用户

发布于 2017-06-01 09:47:58

MySQL提供的文档

MySQL允许非标准语法:浮点(M,D)或实(M,D)或双精度(M,D)。在这里,(M,D)指的是总存储在M位数以上的值,其中D位数可能在小数点之后。例如,定义为FLOAT(7,4)的列在显示时将类似于-999.9999。MySQL在存储值时执行四舍五入,因此如果将999.00009插入浮点数(7,4)列中,则近似结果为999.0001。

这意味着在您的示例中,float(2,1) MSQL允许小数点之前最多2位,小数点后允许1位,这意味着1.2将被允许。

如果您插入1.26,那么MySQL将在表中插入1.3,它将舍入该值。加上MySQl在其他文档中说明了这一点,

“十进制”%=>my %DataType = 'if ($M < $D) {返回$D + 2;} elsif ($D > 0) {返回$M +2;

希望这能让你明白。请参考链接

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44299900

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档