MySQL - 避免在float数据类型中截断尾随零

时间:2011-09-19 04:06:28

标签: mysql floating-point varchar

我有一个用于存储浮动数据的列,即

1.1
11.60
4.23

不幸的是,11.60被存储为11.6。我需要它有额外的零。我是否必须将我的数据类型更改为varchar?处理这个问题的最佳方法是什么?

2 个答案:

答案 0 :(得分:3)

从评论中可以看出,您存储的是产品代码,因此对于数据类型,float不是一个好的选择,正如您所建议的那样。事实上,这不是一个渲染问题,但是我们从你最初的浮动选择中误解了它(认为你确实存储了类似金钱或真十进制的东西)。

按照您的怀疑使用varchar,因为它确实是一个字符串值。

以下是你如何做到这一点:

  • 创建一个varchar(100)类型的新列或任何适合您的长度
  • 将值复制到浮动列中的新列
ALTER TABLE MyTable ADD MyNewColumn VARCHAR(100);

UPDATE MyTable
SET MyNewColumn = FORMAT(MyFloatColumn, 2);

答案 1 :(得分:1)

这是呈现问题,而不是数据问题。要“解决”它,请在选择时将mysql的FORMAT函数应用于您的值:

select FORMAT(my_float_column, 2)
from my_table;

2是小数位数。它将处理(几乎)小数点左边的任意位数。