从MySQL中选择浮点数时如何禁用指数表示法?

时间:2011-05-20 20:05:15

标签: mysql floating-point

我有一个FLOAT列,其中包含一些非常小的数字,如0.00000000000234

当我在MySQL中选择它们时,我会以2.34e-13等指数表示法将它们恢复。有什么方法可以修改这些数字的格式以强制MySQL将其返回为0.00000000000234?

最终我要做的是修改显示,而不是数字的基础表示。所以它可能是一个显示或格式设置。 MySQL有一个FORMAT()函数,但它并不像我想要的那样(它将数字放在123,456.78这样的格式中)。

3 个答案:

答案 0 :(得分:4)

您可以将号码强制恢复为所需的显示格式。将其转换为足够大的DECIMAL值,然后将DECIMAL转换为CHAR,以获取您所追求的显示形式。这是纯粹的显示,并允许您继续在mysql中存储浮点数(如果需要)。

mysql> SELECT CAST(CAST(f AS DECIMAL(14,14)) AS CHAR) AS example from test;
+------------------+
| example          |
+------------------+
| 0.00000000000234 |
+------------------+
1 row in set (0.00 sec)

根据价值,你当然会失去一些精确度。

答案 1 :(得分:2)

您应该考虑使用DECIMAL来存储这些值,因为浮点值都是近似的,并且在处理这么小的数字时是不准确的。可以根据需要显示DECIMAL

答案 2 :(得分:0)

你可以使用圆形。即。

从foo中选择round(column,10);