web-dev-qa-db-fra.com

Type de données flottant à 2 chiffres après le point décimal

Dans SQL Server, le type de données flottant n'affiche pas les zéros de fin après le point décimal

declare @num as float
set @num=5.20
select @num

affichera uniquement 5.2 Mais je veux qu'il s'affiche comme 5.20

Après un peu de recherche, j'ai trouvé que cela peut être résolu en utilisant

select CAST(@num AS numeric(10,2))

Mais ce n'est pas la solution que j'attends. Existe-t-il une méthode telle que la définition du type de données ou la modification du type de données afin que je puisse obtenir la même chose? (Ce sera mieux s'il y a des variantes dans float qui peuvent faire la même chose)

Si cela est possible, je n'ai pas besoin de modifier l'instruction SQL et d'inclure le cast, etc. Veuillez m'aider à ce sujet.

3
IT researcher

Cela peut être réalisé avec le type de données decimal.

Voir ci-dessous pour un exemple:

declare @num as float;
set @num=5.20;

select convert(decimal(10, 2), @num);

La sortie ici sera 5.20.

Après avoir relu votre question:

Mais ce n'est pas la solution que j'attends. Existe-t-il une méthode telle que la définition du type de données ou la modification du type de données afin que je puisse y parvenir?

Y a-t-il une raison pour laquelle vous utilisez spécifiquement float? Souvent, les gens ont tendance à utiliser par défaut ce type de données lorsque decimal est plus que suffisant.

9
Thomas Stringer