Comment pourrais-je compter le nombre de chiffres à droite du séparateur décimal à virgule flottante de la colonne?
J'ai de la table avec les Latitudes et les Longitudes sont stockés en tant qu'floating points. Comment pourrais-je compter le nombre de chiffres à droite de la virgule décimale dans la Latitude de la colonne? Les données ressemblerait à quelque chose comme ceci:
DECLARE @MyData TABLE (ID, Latitude float, Longitude float)
INSERT @MyData
SELECT 'A', 33.11, -55.2235 UNION ALL
SELECT 'B', 33.6407760431,-87.0002760543 UNION ALL
SELECT 'C', 42.2997,-70.9081;
et je veux que cette
ID | LatitudeNumberOfDigits
A | 2
B | 10
C | 4
J'ai essayé de le convertir en texte et la découper à l'aide d'un . comme un délimiteur mais la CONVERTIR n'a pas fonctionné comme prévu. Il arrondi à quatre chiffres significatifs
SELECT ID, Latitude, Longitude,
CONVERT(varchar(max),[Latitude]) AS LatText
FROM @MyData
M'a donné
ID Latitude Longitude LatText
A 33.11 -55.2235 33.11
B 33.6407760431 -87.0002760543 33.6408
C 42.2997 -70.9081 42.2997
Merci !
Depuis la conception originale de kilomètres à l'est de 10 000 km = distance N Pôle à l'Équateur, à 10 000 km ≈ 90°, donc il y a environ 111 km par degré, donc 1×10-11 ° ≈ 111×10-11 km ≈ 1110×10-12 km ≈ 1.11×10⁻⁹ km ≈ 1×10⁻⁶ m ≈ 1 µm. Il est généralement un peu difficile à identifier la partie de l'objet sur lequel vous vous référez au micromètre. En d'autres termes, 11 décimales est d'au moins 3 trop nombreux (8 places serait d'environ millimètre), et probablement 6 de trop nombreux (5 places voudrais vous donner un mètre de précision).
OriginalL'auteur user918967 | 2012-01-17
Vous devez vous connecter pour publier un commentaire.
Essayez ceci (il suppose que votre flotte sera d'au plus 10 décimales, sinon ajuster les valeurs des STR).
Comme d'autres l'ont remarque, cependant, les Flotteurs sont susceptibles de vous donner quelques maux de tête.
Considérez ceci par exemple:
OriginalL'auteur Paolo Falabella
Vous n'avez pas. Le nombre de décimales est déterminé par la taille d'un flotteur en SQL. Combien de vous VOIR est déterminé par la façon dont le flotteur est formaté.
OriginalL'auteur Steve Wellens
DÉCIMAL pas FLOAT:
Retourne:
OriginalL'auteur naiem
Fonte numérique(maxprecision, maxscale). Puis itérer avec une instruction case.
OriginalL'auteur Bob Brown
Cela peut ne pas être valide tsql, mais il sera à proximité:
OriginalL'auteur Bohemian
Utiliser le
STR
fonction au lieu deCONVERT
ouCAST
. Il vous permet plus de contrôle sur le nombre de décimales et la longueur totale de la chaîne. Voir STR (Transact-SQL)OriginalL'auteur Olivier Jacot-Descombes