回答
这里去一些文档
http://dev.mysql.com/doc/refman/5.0/en/mathematical-functions.html#function_round
快速回答:
mysql> SELECT ROUND(1.987, 2); = 1.99
以上你在找什么对于
truncate(1.987, 2) = 1.98
这仅有差别如果正在输出的数目(数值,1.0
= 1.00
)。所以:
(case when format(num, 2) = '1.00' then '1.0' else format(num-0.005, 2) end)
的-0.005
是要克服的事实,format()
回合,而不是截断。
只是问 - 在一种情况下'case'比'if'更快吗? – jaczes
@jaczes。 。 。可能不会。我想他们被编译成类似的结构。然而,当试图使查询运行得更快时,这种微观优化通常会浪费精力和大脑带宽。 –
+1。或'FORMAT(TRUNCATE(num,2),2)'。我怀疑OP想'2.00'返回为'2.0',但这没有指定。该解决方案符合规范(至少在规范修改之前)。 – spencer7593
- 1. 如何在这种情况下(MySQL的)
- 2. 在这种情况下,此运算符[]超载如何工作?
- 3. SQL Server锁定在这种情况下如何工作?
- 4. MySQL在这种情况下的表现?
- 5. 在这种情况下的MySQL大小?
- 6. Ajax在这两种情况下运行
- 7. 在这种情况下的SQL枢轴?
- 8. SQL:如何查询在SQL命令在这种情况下
- 9. res.render()在一种情况下工作,但不在另一种情况下工作
- 10. 如何在这种情况下
- 11. 如何使用在这种情况下
- 12. 如何在这种情况下
- 13. 如何在这种情况下
- 14. 如何点击在这种情况下
- 15. 如何在这种情况下
- 16. 如何调用在这种情况下
- 17. 如何在这种情况下循环
- 18. LinqtoSQL/C#:如何在这种情况下
- 19. 如何在这种情况下
- 20. 是在这种情况下
- 21. 在这种情况下
- 22. 和|| =在这种情况下
- 23. 在这种情况下
- 24. 在这种情况下
- 25. 在这种情况下
- 26. SCOPE_IDENTITY在这种情况下工作吗?
- 27. javascript:console.log不在这种情况下工作?
- 28. 这种情况下的SQL查询?
- 29. 值分配操作符在这种情况下如何工作?
- 30. 或者操作员在这种情况下如何工作?
什么是具有'1.00'到一个小数点的规则,但其他所有到2? –
将2.00的值返回为“2.00”还是“2.0”?是否有规则,一个有条件的测试,可以用来做出决定。这是一个简单的例子(尽管你声称它不是)。 '1.00'返回为'1.0',因为这是返回的第一行,因为它等于1,或者因为它小于1.04?给我们规则。 – spencer7593