选择具有给定精度的FLOAT

时间:2012-11-29 07:31:26

标签: mysql floating-point-precision

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

我可以以某种方式在我的SELECT中传递,或者我是否必须在我的应用程序中执行此操作?

2 个答案:

答案 0 :(得分:11)

是的,只需指定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输入有关)

答案 1 :(得分:4)

使用ROUND()CEIL()FLOOR()执行相同的操作,并将第二个参数的值作为输入从用户传递。