web-dev-qa-db-fra.com

Ecrire un nombre avec deux décimales SQL Server

Comment écrivez-vous un nombre avec deux décimales pour le serveur SQL?

139
student2009

essaye ça

SELECT CONVERT(DECIMAL(10,2),YOURCOLUMN)
191
Manoj

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.

61
Charles Bretana

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é

35
AAA

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

Capture d'écran du code

13
Mohamed Ramadan

Voici comment les enfants le font aujourd'hui:

DECLARE @test DECIMAL(18,6) = 123.456789
SELECT FORMAT(@test, '##.##')

123.46

11
ClubbieTim

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
8
SonalPM

Si tout va bien avec arrondi le nombre au lieu de le tronquer, alors c'est juste:

ROUND(column_name,decimals)
6
antoine

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
2
SQL Master

Essaye ça:

 declare @MyFloatVal float;

    set @MyFloatVal=(select convert(decimal(10, 2), 10.254000))

    select  @MyFloatVal

    Convert(decimal(18,2),r.AdditionAmount) as AdditionAmount
1
Anil Chaudhary

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;
0
kumar vishwash