我们都知道double和float会导致小数不精确,尤其在有关金钱等值的数据类型,一般用decimal,在搜索数据库存金钱的数据类型时,看到一篇文章:
在mysql中,涉及到金钱的数据类型一般是什么?_sql金额用什么数据类型_lk小强的博客-CSDN博客
但对于decimal还有疑问,于是请教了下gpt4。以下是问答内容:
问:
mysql中,decimal是为什么是字符串存储
答:
抱歉,您的描述有误。在 MySQL 中, `DECIMAL` 是一种数字数据类型,不是字符串类型。 `DECIMAL` 用于存储精确小数,可以指定精确度和小数位数。例如, `DECIMAL(10,2)` 表示最大总位数为10,小数点后两位。
在 MySQL 中,字符串类型有 `CHAR` 、 `VARCHAR` 、 `TEXT` 等,它们用于存储字符类型的数据,而不是数字类型的数据。如果您的应用程序在 MySQL 中使用字符串存储数字类型的数据,可能会导致性能问题和数据不一致的问题。建议您在数据库设计阶段,根据实际需要将每个字段定义为相应的数据类型,以最大程度地利用数据库的优化