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;