Réponses:
essaye ça
SELECT CONVERT(DECIMAL(10,2),YOURCOLUMN)
Utilisez la Str()fonction. Il faut trois arguments (le nombre, le nombre total de caractères à afficher et le nombre de décimales à afficher
Select Str(12345.6789, 12, 3)
affiche: '12345.679' (3 espaces, 5 chiffres 12345, un point décimal et trois chiffres décimaux (679). - il arrondit s'il doit tronquer, (sauf si la partie entière est trop grande pour la taille totale, auquel cas des astérisques sont affichés à la place.)
pour un total de 12 caractères, avec 3 à droite de la virgule décimale.
it rounds if it has to truncate... sauf si la partie entière est trop grande pour la taille totale, auquel cas des astérisques sont affichés à la place. Ceci est mentionné dans la documentation deSTR . Voici une citation de cette page:STR(1223,2) truncates the result set to **.
En règle générale, vous pouvez définir la précision d'un nombre en SQL en le définissant avec des paramètres. Dans la plupart des cas, ce sera NUMERIC(10,2)ouDecimal(10,2) - définira une colonne comme un nombre avec 10 chiffres au total avec une précision de 2 (décimales).
Édité pour plus de clarté
Ce travail pour moi et garde toujours des fractions à deux chiffres
23,1 ==> 23,10
25,569 ==> 25,56
1 ==> 1,00
Cast(CONVERT(DECIMAL(10,2),Value1) as nvarchar) AS Value2
Voici comment les enfants le font aujourd'hui:
DECLARE @test DECIMAL(18,6) = 123.456789
SELECT FORMAT(@test, '##.##')
123,46
DECLARE @test DECIMAL(18,6) = 0.456789 alors les SELECT FORMAT(@test, '##.##')rendements: .46 Comment obtenez-vous pour montrer le zéro: 0.46?
Essaye ça:
declare @MyFloatVal float;
set @MyFloatVal=(select convert(decimal(10, 2), 10.254000))
select @MyFloatVal
Convert(decimal(18,2),r.AdditionAmount) as AdditionAmount
Multipliez la valeur que vous souhaitez insérer (ex. 2,99) par 100
Insérez ensuite la division par 100 du résultat en ajoutant 0,01 à la fin:
299.01/100
Cela permettra un total de 10 chiffres avec 2 valeurs après la décimale. Cela signifie qu'il peut accepter la valeur de la valeur avant la décimale jusqu'à 8 chiffres et 2 après la décimale.
Pour valider, mettez la valeur dans la requête suivante.
DECLARE vtest number(10,2);
BEGIN
SELECT 10.008 INTO vtest FROM dual;
dbms_output.put_line(vtest);
END;