MySQL将0.00存储为0?

时间:2014-05-30 17:20:46

标签: mysql number-formatting

我们如何将0.00存储为浮动值?列的小数位数已设置为2.该列为float数据类型。每当我尝试插入0.00时,它会自动将0.00转换为0.

3 个答案:

答案 0 :(得分:6)

您将存储与显示混淆。

没有计算机存储0.00,0.0,0.0000,0000.00000或任何其他零表示作为这些ASCII字符; MySQL不会将数字存储为您输入的字符串。它将它们存储在IEEE二进制浮点格式中,这种格式在本机形式下对你来说毫无意义。

当您以人类可读的形式看到它时,负责的软件会选择如何向您展示它。实际上不需要0.00而不是0,但如果您愿意,可以将查询配置为执行此操作;听起来您可能希望使用FORMAT

SELECT FORMAT(`MyColumn`, 2) AS `MyColumnToTwoDecimalPlaces`

答案 1 :(得分:1)

00.00相同。它们的存储方式不同。无论您使用什么来查看值,都会进行截断。无论您使用什么语言来检索值,都应该完全能够将尾随零添加到指定的精度。

答案 2 :(得分:0)

在DECIMAL列声明中,可以(通常是)指定精度和比例;例如:

salary DECIMAL(5,2)

查看Fixed-Point types