2012-11-29 9 views
5

Değerlerimi FLOATS olarak saklamak istiyorum, ancak bunları alırken kullanıcı ondalık noktadan sonra kaç rakam görmek istediğini (ve çalışma zamanında değiştirebilir) belirtebilir.Verilen bir hassasiyetle bir FLOAT SEÇİN

Bunu bir şekilde benim SELECT'umdan geçirebilir miyim, yoksa uygulamada bunu yapmak zorunda mıyım?

cevap

8

Evet, sadece size iade almak istiyorum basamak sayısını belirtebilirsiniz Bununla ROUND()

SELECT ROUND(23.298, <precision>); 

için ikinci bir parametre belirtebilirsiniz. (Olsa bile negatif değerler olabilir, giriş 10 (-precision)) yuvarlanır.

Yoksa kullanabilirsiniz CASTDECIMAL olarak:

CAST(2.5 AS DECIMAL(20,2)) 

(Not: Bu sonuncu CAST('2.5' AS DECIMAL(20,2)) gibi çok metinsel girişlerine birlikte çalışacak, ama bu durumda ŞAMANDIRALI girdiler hakkındadır)

4

kullanım ROUND() Aynı işlemi yapmak için CEIL() veya FLOOR() numaralarını kullanın ve ikinci bağımsız değişkenin değerini kullanıcı olarak bir girdi olarak iletin.

+0

+1, CEIL ve FLOOR'u tamamen unutmuşum! – ppeterka