SQL Server 2008: Pourquoi ne pas arrondir à deux décimales?
SELECT
ROUND(WeightInOZ / 16, 2)as WeightInLbs
FROM
Inventory
Le résultat je reçois ressemble à un entier 1,2 etc
Quel est le type de données de
c'est un int, mais je ne pense pas qu'il aurait de l'importance, parce que je ammanipulating le résultat
Double Possible (de votes?!?): stackoverflow.com/questions/44046/...
Je ne pense pas que c'est un doublon (même si je serais surpris s'il n'y a pas d'un doublon, considérant que c'est une erreur assez commune...je n'ai pas la peine de chercher, tout de même)
Robinson: L'OP observations suggèrent l'arrondissement avec la troncature, qui est ce que le lien fournit.
WeightInOZ
?c'est un int, mais je ne pense pas qu'il aurait de l'importance, parce que je ammanipulating le résultat
Double Possible (de votes?!?): stackoverflow.com/questions/44046/...
Je ne pense pas que c'est un doublon (même si je serais surpris s'il n'y a pas d'un doublon, considérant que c'est une erreur assez commune...je n'ai pas la peine de chercher, tout de même)
Robinson: L'OP observations suggèrent l'arrondissement avec la troncature, qui est ce que le lien fournit.
OriginalL'auteur William | 2011-02-07
Vous devez vous connecter pour publier un commentaire.
Essayer de changer de 16 à 16,0
Vous voyez des résultats étranges parce que c'est de traiter les résultats de votre division d'un nombre entier plutôt qu'une virgule. La spécification de la
.0
indique à sql server de le traiter comme un nombre décimal.Mise à JOUR:
Si la fuite zéro sont freaking-vous que vous pouvez toujours faire ceci:
Hmm, quels résultats en attendez-vous?
je m'attends à 0,06 ou 233.23 etc
Je sais que cela semble bizarre, mais ce sont les mêmes numéros. Si vous n'aimez pas voir les zéros de fin, vous pouvez utiliser la méthode décrite dans ma mise à jour.
Oh, je vois, c'est très intelligent
OriginalL'auteur Abe Miessler
Le problème est: est-ce
Puisque vous avez affaire à deux entiers, SQL Server tronque le reste, donc il n'y a pas de fractions composant à la ronde.
Ce que vous voulez faire est de le forcer à effectuer à virgule flottante (ou nombre) de la division. Le plus simple serait de changer
16
à16.0
.OriginalL'auteur Adam Robinson