Comment écrire un nombre avec deux décimales pour SQL Server?Écrire un nombre avec deux décimales SQL server
Répondre
Généralement, vous pouvez définir la précision d'un nombre dans SQL en le définissant avec des paramètres. Pour la plupart des cas, ce sera NUMERIC(10,2)
ou Decimal(10,2)
- définira une colonne comme un nombre avec 10 chiffres au total avec une précision de 2 (décimales).
Modifié par souci de clarté
Utilisez la fonction Str()
. Il prend trois arguments (le nombre, le nombre total de caractères à afficher, et le nombre de décimales pour afficher
Select Str(12345.6789, 12, 3)
affiche: « 12345.679 » (3 places, 5 chiffres 12345, un point décimal, et trois décimales digits (679) - il arrondit s'il doit être tronqué (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 le droit de la virgule décimale
'il arrondit s'il doit tronquer' ... sauf si la partie entière est trop grande pour le total taille, auquel cas les astérisques sont affichés à la place. Cela est mentionné dans la [documentation pour 'STR'] (http://msdn.microsoft.com/en-us/library/ms189527.aspx). Voici une citation de cette page: 'STR (1223,2) tronque le jeu de résultats à **.' –
essayez ce
SELECT CONVERT(DECIMAL(10,2),YOURCOLUMN)
Ce travail pour moi et garde toujours fractions deux chiffres
23,1 ==> 23,10
25,569 ==> 25,56
1 ==> 1,00
Cast(CONVERT(DECIMAL(10,2),Value1) as nvarchar) AS Value2
essayez la fonction STR() de Charles Bretana ci-dessus. Cela fonctionne comme votre formule mais fera l'arrondi sur votre exemple 25.569. – JerryOL
Salut ici j'ai une requête comme ceci "SELECT gametype, gameSubType, noofplayers, playerrank, heure de début, fin, CONVERT (décimal (20,10), initialBuy), smallblind, bigblind, winamt, lossamt, salle de poker, nom de salle, dateval, sessiontype, sessionid FROM 'pokerastic_session' O WH sessiontype = 1 et dateval BETWEEN '2013-05-01' et '2013-06-05'" mais c'est grâce à l'erreur pourriez-vous m'aider s'il vous plaît pour convertir la décimale avec deux chiffres – dineshprasanna
Cela permettra au total 10 chiffres avec 2 valeurs après la décimale. Cela signifie qu'il peut accepter la valeur avant la décimale jusqu'à 8 chiffres et 2 après la décimale.
Pour valider, placez 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;
Cela fonctionnera sur Oracle, mais pas sur Microsoft SQL Server. –
Multiplier la valeur que vous souhaitez insérer (ex 2.99.) 100
Ensuite, insérez la division par 100 du résultat de l'addition .01 à la fin:
299.01/100
Si vous « re bien avec arrondi le nombre au lieu de le tronquer, il est juste:
ROUND(column_name,decimals)
Si vous avez seulement besoin de deux décimales, le plus simple est ..
SELECT CAST(12 AS DECIMAL(16,2))
OU
SELECT CAST('12' AS DECIMAL(16,2))
Sortie
12.00
Essayez ceci:
declare @MyFloatVal float;
set @MyFloatVal=(select convert(decimal(10, 2), 10.254000))
select @MyFloatVal
Convert(decimal(18,2),r.AdditionAmount) as AdditionAmount
Voici comment les enfants font aujourd'hui:
DECLARE @test DECIMAL (18,6) = 123,456789
FORMAT SELECT (@test, '##. ##') 123,46
Il peut également être déclarée comme DECIMAL (10, 2). – jrcs3
@ jrcs3 - Bonne prise. – AAA
Ceci est faux pour plusieurs raisons. Ce n'est pas un nombre, c'est numérique ou décimal. Vous dites numérique (10,2) permet 10 places avant le point décimal, ce qui est également faux. numeric (10,2) permet 10 chiffres totaux avec 2 places après la virgule décimale. Plage = -99999999.99 à 99999999.99 –