230 votes

Comment vérifier si un nombre est positif ou négatif en C# ?

Comment vérifier si un nombre est positif ou négatif en C# ?

0 votes

Question utile.

249voto

Simon Fischer Points 1597
bool positive = number > 0;
bool negative = number < 0;

28 votes

Et le pauvre vieux zéro négatif ? !

5 votes

@SimonFischer Il existe bien des branches des mathématiques, de l'informatique et de la science ordinaire qui utilisent un zéro négatif et positif. Les chimistes et les physiciens, par exemple, utiliseront parfois -0 pour un nombre négatif arrondi à zéro. Les définitions n'ont de sens que dans un contexte. Lorsque vous traitez les définitions mathématiques que l'on vous a enseignées comme si elles étaient vraiment universelles, vous risquez de vous retrouver dans un contexte mathématique différent où vous vous trompez.

0 votes

Merci beaucoup pour votre réponse !

190voto

tjm Points 3462

Bien sûr, personne n'a donné la bonne réponse,

num != 0   // num is positive *or* negative!

9 votes

Non, l'OP a demandé si is positive or is negative pas is (positive or negative)

2 votes

0 toujours positif

0 votes

@T.Todua Je crois que c'était la blague.

94voto

hunter Points 33850

OVERKILL !

public static class AwesomeExtensions
{
    public static bool IsPositive(this int number)
    {
        return number > 0;
    }

    public static bool IsNegative(this int number)
    {
        return number < 0;
    }

    public static bool IsZero(this int number)
    {
        return number == 0;
    }

    public static bool IsAwesome(this int number)
    {
        return IsNegative(number) && IsPositive(number) && IsZero(number);
    }
}

33 votes

En interne, il devrait instancier une classe qui implémente ISignDeterminator en utilisant un SignDeterminatorFactory .

12 votes

Incomplet : vous devriez également vérifier IsNaN() ;)

4 votes

@slashmais : Sur un int ? ! Dans quel pays magique de C# travaillez-vous ?

65voto

gnovice Points 70970

Le site Méthode Math.Sign est une façon de faire. Elle renvoie -1 pour les nombres négatifs, 1 pour les nombres positifs et 0 pour les valeurs égales à zéro (c'est-à-dire que zéro n'a pas de signe). Les variables à double et simple précision provoqueront une exception ( ArithmeticException ) à lancer s'ils sont égaux à NaN.

0 votes

Wow, je ne savais pas que ça existait. Qu'est-ce qui se passe pour NaN ?

0 votes

@Tanmoy : On dirait que ça va lancer une exception dans ce cas.

1 votes

Mais il doit aussi vérifier si le résultat de Math.Sign est positif ou négatif ! Utilise-t-il Math.Sign pour cela aussi ? ;)

56voto

Lou Franco Points 48823
num < 0 // number is negative

12 votes

Je suppose qu'il s'agit d'un débutant, que nous devrions essayer d'aider. Une fois que vous aurez appris la bonne méthode, vérifiez la mauvaise méthode. thedailywtf.com/Articles/

1 votes

Au début, je n'arrivais pas à croire à la question posée sur la page principale, puis je suis venu ici ... :) et ce type n'est pas seul ... oh là là :)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X