我有一个浮点列,它包含一些非常小的数字,比如0.00000000000234
当我在MySQL中选择它们时,我会得到像2.34e-13这样的指数表示法。有没有办法修改这些数字的格式,以强制MySQL将其返回为0.00000000000234?
最终,我要做的是修改显示,而不是数字的底层表示。所以它可能是一个显示或格式设置。MySQL有一个FORMAT()函数,但它与我想要的一点也不一样(它将数字的格式设置为123,456.78)。
发布于 2014-08-01 09:30:10
您可以强制将数字恢复为所需的显示格式。将其转换为足够大的十进制值,然后将小数转换为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)当然,根据值的不同,您会损失一些精度。
发布于 2011-05-21 04:10:40
您应该考虑使用DECIMAL来存储这些值,因为浮点值都是近似值,在处理如此小的数字时是不准确的。DECIMAL将按您所需的方式显示。
发布于 2013-03-13 00:41:56
您可以使用round。即
从foo中选择round(列,10);
https://stackoverflow.com/questions/6077069
复制相似问题