2012-11-29 20 views
5

Voglio memorizzare i miei valori come FLOATS, ma quando li recuperi l'utente può specificare (e cambiare in fase di esecuzione) quante cifre vuole vedere dopo il punto decimale.SELEZIONA un FLOAT con una precisione data

Posso passare quello nel mio SELECT in qualche modo, o devo farlo nella mia applicazione?

risposta

8

Sì, basta specificare il secondo parametro per ROUND()

SELECT ROUND(23.298, <precision>); 

Con questo, è possibile specificare il numero di cifre che si desidera ottenere restituito. (è possibile anche avere valori negativi, in caso di inerenza, l'input viene arrotondato a 10 (-precisione)).

Oppure si potrebbe usare CAST come DECIMAL:

CAST(2.5 AS DECIMAL(20,2)) 

(Nota: quest'ultimo avrebbe lavorato con ingressi testuali anche, come CAST('2.5' AS DECIMAL(20,2)), ma in questo caso si tratta di ingressi FLOAT)

4

uso ROUND() , CEIL() o FLOOR() per fare lo stesso e ottenere il valore del secondo argomento passato dall'utente come input.

+0

+1, ho completamente dimenticato CEIL e PAVIMENTO! – ppeterka

Problemi correlati