首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从MySQL中选择浮点数时,如何禁用指数表示法?

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

Stack Overflow用户
提问于 2011-05-21 04:05:15
回答 3查看 5.7K关注 0票数 8

我有一个浮点列,它包含一些非常小的数字,比如0.00000000000234

当我在MySQL中选择它们时,我会得到像2.34e-13这样的指数表示法。有没有办法修改这些数字的格式,以强制MySQL将其返回为0.00000000000234?

最终,我要做的是修改显示,而不是数字的底层表示。所以它可能是一个显示或格式设置。MySQL有一个FORMAT()函数,但它与我想要的一点也不一样(它将数字的格式设置为123,456.78)。

EN

回答 3

Stack Overflow用户

发布于 2014-08-01 09:30:10

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

代码语言:javascript
复制
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)

当然,根据值的不同,您会损失一些精度。

票数 4
EN

Stack Overflow用户

发布于 2011-05-21 04:10:40

您应该考虑使用DECIMAL来存储这些值,因为浮点值都是近似值,在处理如此小的数字时是不准确的。DECIMAL将按您所需的方式显示。

票数 2
EN

Stack Overflow用户

发布于 2013-03-13 00:41:56

您可以使用round。即

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6077069

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档