【问题标题】:Display only 2 decimal places in MySQL (phpMyAdmin) but retain all decimal places for calculations在 MySQL (phpMyAdmin) 中仅显示 2 位小数,但保留所有小数位进行计算
【发布时间】:2018-11-29 06:35:27
【问题描述】:

我的 MySQL 数据库中有几个表,我使用浮点类型的列,现在基于这些列,我还有其他几个计算列。我希望能够继续使用浮点列进行所有计算并保持“准确性”,但是当我在 phpMyAdmin 中看到结果时,我只想看到 2 位小数,这样它看起来很整洁。

TRUNCATE(0.16666, 2) 不起作用,因为它将评估为 0.16,但是我仍然想继续使用 0.16666 进行所有计算。

ROUND(0.16666, 2) 将评估为 0.17。

我正在寻找的是让 MySQL 继续使用 0.16666 进行任何后续计算,但是当我在 phpMyAdmin 中选择/显示表格时,它只显示两个小数点。你能给些建议么。

【问题讨论】:

  • 对于您需要不同的计算以及查看您需要不同的保存内容,只有将是可见的,这是不可能的。你必须像 0.16666 一样保存,当需要保留两位小数时,请执行 select tochar(colname,'99.99');
  • 在这种情况下,在显示值之前在应用程序代码中进行舍入。
  • 您似乎希望您的查询工具自动格式化浮点类型列以使用 2 dp 显示,无论数据存储在数据库中多少 dp,其方式类似于查询工具具有默认日期格式设置,其中日期列以您选择的格式显示。如果 phpmyadmin 没有办法(在设置中)指定您希望将浮点/小数列格式化为 2 位小数,您将需要寻找一个查询工具。 StackOverflow 有针对寻求软件推荐的问题的特定规则..
  • 我投票决定将此问题作为离题结束,因为答案必须推荐特定的 MySQL 查询软件,并且“推荐我一个”问题是离题
  • (尽管我在上面说过,每次在 phpmyadmin 中选择数据时都可以使用这些函数:在查询的选择列表部分中使用 TRUNC 或 ROUND 不会改变基础数据。MySQL当您在最外层的选择查询中选择它时,将使用精确的形式并格式化您的数据)

标签: mysql sql phpmyadmin


【解决方案1】:

仅使用表格是不可能做到这一点的,您必须决定是想要精确还是四舍五入的结果。 如果您想为带有舍入的列创建 VIEWS 以显示您的表格。

【讨论】:

  • 谢谢@halliballi。我想我将不得不硬着头皮使用 VIEWS,我想避免它,因为它们会占用数据库上的空间。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-05
  • 1970-01-01
相关资源
最近更新 更多