10
votes

Comment déterminer si le nombre est float ou entier

Je dois écrire cette requête dans SQL Server: xxx

aidez-moi avec cela, merci.


1 commentaires

Compteriez-vous la valeur «1.0» comme un entier ou un flotteur?


4 Réponses :


41
votes
declare @value float = 1

IF FLOOR(@value) <> CEILING(@value)
BEGIN
    PRINT 'this is float number'
END
ELSE
BEGIN
    PRINT 'this is integer number'
END

0 commentaires

1
votes

Martin, dans certaines circonstances, votre solution donne un résultat incorrect si vous rencontrez une valeur de 1234.0, par exemple. Votre code détermine que 1234.0 est un entier, ce qui est incorrect.

Ceci est un extrait plus précis: p>

if cast(cast(123456.0 as integer) as varchar(255)) <> cast(123456.0 as varchar(255)) 
begin 
  print 'non integer' 
end 
else 
begin 
  print 'integer' 
end


1 commentaires

Pour moi 123456.0 est identique que 123456 et est un entier.



0
votes
DECLARE @value FLOAT = 1.50
IF CONVERT(int, @value) - @value <> 0
BEGIN
    PRINT 'this is float number'
END
ELSE
BEGIN
    PRINT 'this is integer number'
END

0 commentaires

0
votes

Voir si le code ci-dessous vous aidera. Dans les valeurs ci-dessous seulement 9, 2147483647, 1234567 sont éligibles en tant qu'Éteger. Nous pouvons créer ceci comme fonction et peut utiliser ceci. xxx

ou xxx


0 commentaires