Comment écrivez-vous un nombre avec deux décimales pour le serveur SQL?
essaye ça
SELECT CONVERT(DECIMAL(10,2),YOURCOLUMN)
Utilisez Str()
Function. 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). - Elle arrondit si elle doit être tronquée (sauf si la partie entière est trop grande pour la taille totale, auquel cas les astérisques sont affichés à la place.)
pour un total de 12 caractères, avec 3 à droite du point décimal.
Généralement, 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, il s'agira de NUMERIC(10,2)
ou Decimal(10,2)
- définira une colonne en tant que 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
Si vous n'avez besoin que de deux décimales, la méthode la plus simple consiste à ..
SELECT CAST(12 AS DECIMAL(16,2))
OR
SELECT CAST('12' AS DECIMAL(16,2))
sortie
12.00
Si tout va bien avec arrondi le nombre au lieu de le tronquer, alors c'est juste:
ROUND(column_name,decimals)
Multipliez la valeur que vous voulez insérer (ex. 2.99) par 100
Puis insérez la division par 100 du résultat en ajoutant .01 à la fin:
299.01/100
Essaye ça:
declare @MyFloatVal float;
set @MyFloatVal=(select convert(decimal(10, 2), 10.254000))
select @MyFloatVal
Convert(decimal(18,2),r.AdditionAmount) as AdditionAmount
Cela permettra de totaliser 10 chiffres avec 2 valeurs après la décimale. Cela signifie qu'il peut accueillir la valeur avant décimale jusqu'à 8 chiffres et 2 décimales.
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;