【问题标题】:Get to 2 decimal places精确到小数点后 2 位
【发布时间】:2014-04-14 13:47:34
【问题描述】:

我这里有这行查询

if (type = 1,

(IF(ISNULL(users), 
'', 
((SUM(actual) / 1) * 0.04/12) * if(users = "user", booked/(36/12),'')
))

,
'false')

示例输出为123.3333333

我希望它只输出 2 位小数,所以它就像 123.33 我应该在哪里放置 Truncate 或 Round 命令?

谢谢!

【问题讨论】:

标签: mysql decimal truncate


【解决方案1】:

怎么样:

if (type = 1,
(IF(ISNULL(users), '', ROUND(((SUM(actual) / 1) * 0.04/12) * if(users_0.user_name = "user", booked/(36/12),''),2)))
, 'false')

【讨论】:

  • 我在描述框中编辑了我的查询行。像这样尝试过,但出现语法错误
  • 更新到您的新查询。
【解决方案2】:

您可以使用truncate()

TRUNCATE(123.3333333, 2) = 123.33


if (type = 1,
(
  IF(ISNULL(users), '', 
  TRUNCATE(
  (
    (SUM(actual) / 1) * 0.04/12) * if(users_0.user_name = "user", booked/(36/12),'')
  ),2)

)

,
'false')

【讨论】:

  • @hearmeroar 什么语法错误?你试过自己修吗?你应该对帮助你的人更有帮助。
  • 很抱歉,我在错误的地方添加了截断函数。很多括号让我感到困惑。刚刚更正了。
  • 谢谢@AbhikChakraborty:D
猜你喜欢
  • 2017-06-23
  • 1970-01-01
  • 1970-01-01
  • 2014-09-08
  • 1970-01-01
  • 1970-01-01
  • 2014-07-07
  • 1970-01-01
  • 2020-05-22
相关资源
最近更新 更多