Risposte:
prova questo
SELECT CONVERT(DECIMAL(10,2),YOURCOLUMN)
Usa la Str()
funzione. Sono necessari tre argomenti (il numero, il numero totale di caratteri da visualizzare e il numero di posizioni decimali da visualizzare
Select Str(12345.6789, 12, 3)
visualizza: '12345.679' (3 spazi, 5 cifre 12345, un punto decimale e tre cifre decimali (679). - arrotonda se deve troncare (a meno che la parte intera non sia troppo grande per la dimensione totale, nel qual caso vengono invece visualizzati gli asterischi.)
per un totale di 12 caratteri, con 3 a destra del punto decimale.
it rounds if it has to truncate
... a meno che la parte intera non sia troppo grande per la dimensione totale, nel qual caso vengono visualizzati gli asterischi. Questo è menzionato nella documentazione diSTR
. Ecco una citazione da quella pagina:STR(1223,2) truncates the result set to **.
Generalmente è possibile definire la precisione di un numero in SQL definendolo con parametri. Nella maggior parte dei casi questo sarà NUMERIC(10,2)
oDecimal(10,2)
- definirà una colonna come un Numero con 10 cifre totali con una precisione di 2 (cifre decimali).
A cura di chiarezza
Questo lavoro per me e mantiene sempre frazioni di due cifre
23.1 ==> 23.10
25.569 ==> 25.56
1 ==> 1.00
Cast(CONVERT(DECIMAL(10,2),Value1) as nvarchar) AS Value2
Ecco come lo fanno oggi i bambini:
DECLARE @test DECIMAL(18,6) = 123.456789
SELECT FORMAT(@test, '##.##')
123.46
DECLARE @test DECIMAL(18,6) = 0.456789
quindi SELECT FORMAT(@test, '##.##')
restituisce: .46
Come si ottiene per mostrare lo zero iniziale 0.46
:?
Prova questo:
declare @MyFloatVal float;
set @MyFloatVal=(select convert(decimal(10, 2), 10.254000))
select @MyFloatVal
Convert(decimal(18,2),r.AdditionAmount) as AdditionAmount
Moltiplicare il valore che si desidera inserire (es. 2,99) per 100
Quindi inserire la divisione per 100 del risultato aggiungendo .01 alla fine:
299.01/100
Ciò consentirà un totale di 10 cifre con 2 valori dopo il decimale. Significa che può contenere il valore prima dei decimali fino a 8 cifre e 2 dopo i decimali.
Per convalidare, inserire il valore nella seguente query.
DECLARE vtest number(10,2);
BEGIN
SELECT 10.008 INTO vtest FROM dual;
dbms_output.put_line(vtest);
END;