You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL/MariaDB中TINYINT是否支持小数?若不支持该用何种类型替代?

嘿,这个问题其实挺基础但容易踩坑的,我来给你讲明白~

TINYINT能不能存小数?

完全不行。TINYINT是MySQL/MariaDB里的整数类型,不管是有符号(范围 -128 到 127)还是无符号(0 到 255)版本,它的设计目标就是只存储整数。如果硬往里面插小数,数据库要么自动截断小数部分(比如插3.9会变成3),要么在严格SQL模式下直接报错,总之得不到你想要的小数结果。

适合存小数的替代类型

根据你的精度需求,推荐这几种常用类型:

  • DECIMAL/NUMERIC:这是最靠谱的精确小数类型,不会出现浮点精度丢失的问题。比如定义成 DECIMAL(6,2),就表示总共6位数字,其中2位是小数,能存从 -9999.99 到 9999.99 的数值。涉及金额、财务计算这类对精度要求高的场景,一定要选它。
  • FLOAT:单精度浮点类型,适合对精度要求不高的场景(比如统计估算、科学数据),但要注意它存在精度丢失风险——比如0.1存进去后实际存储的是一个接近0.1的近似值,不是精确值。
  • DOUBLE:双精度浮点类型,精度比FLOAT更高,但同样有浮点近似的问题,适合需要更大数值范围且能接受微小误差的场景。

另外提个小建议:如果是存储百分比类的数据,DECIMAL(5,2) 就足够用了;如果需要超高精度,DECIMAL的参数可以调整,比如DECIMAL(10,5)能存5位小数的数值。

内容的提问来源于stack exchange,提问作者One SNapp

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 07:23:25