8

我想将我的值存储为 FLOATS,但是在检索它们时,用户可以指定(并在运行时更改)他想在小数点后看到多少位数。

我可以SELECT以某种方式通过它,还是必须在我的应用程序中这样做?

4

2 回答 2

15

是的,只需指定第二个参数ROUND()

SELECT ROUND(23.298, <precision>);

有了这个,您可以指定要返回的位数。(您甚至可以有负值,在这种情况下,输入会四舍五入为 10 (-precision))。

或者您可以CAST用作DECIMAL

 CAST(2.5 AS DECIMAL(20,2))

(注意:后者也适用于文本输入,例如CAST('2.5' AS DECIMAL(20,2)),但在这种情况下,它是关于 FLOAT 输入的)

于 2012-11-29T07:33:03.797 回答
4

使用ROUND(),CEIL()FLOOR()做同样的事情并获取从用户传递的第二个参数的值作为输入。

于 2012-11-29T07:34:24.587 回答