Bonjour,
il existe une fonction qui permet de savoir si un réel est compris entre 2 nombres, mais je ne la retrouve pas.
Est ce que quelqu'un peut me rafraichir la mémoire ?
Merci
A+
Charly
Bonjour,
il existe une fonction qui permet de savoir si un réel est compris entre 2 nombres, mais je ne la retrouve pas.
Est ce que quelqu'un peut me rafraichir la mémoire ?
Merci
A+
Charly
Euh ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part if A < X and X < B then
Code : Sélectionner tout - Visualiser dans une fenêtre à part if CompareValue(X, A, 1) = GreaterThanValue then
Merci, il y a compareValue, je voulais éviter les if (bêtement)
Mais il y avait une autre fonction que tu as déjà utilisé dans un de tes posts, mais que je ne retrouve pas et qui teste directement si une valeur est entre deux bornes.
A+
Charly
Oui merci c'est bien Inrange :
Je ne sais pas si c'est mieux que des if !
Code : Sélectionner tout - Visualiser dans une fenêtre à part InRange(const AValue, AMin, AMax: Integer): Boolean;
A+
Charly
Pour ma part, je trouve qu'il manque l'opérateur ternaire de Windev SI A < X < B ALORS, j'ignore si cela existe dans d'autres langages plus léger à lire que if (A < X) and (X < B) then.
InRange sera un poil plus lent que le "if and" dans certains cas, quand je dis plus lent c'est 1-2 cycle CPU, car dans le cas de if (A < X) and (X < B) then, avec l'évaluation partielle des booléens active par défaut, si A < Y retourne False, la suite ne sera pas vérifier.
InRange fait systématiquement l'évaluation des deux puis fait and dans un second temps
A part des cas extrème, cela reste assez négligeable comme impact de nos jours sur une application cliente.
Du coup, InRange peut-être utilise à utiliser si l'on veut occasionnellement évaluer les deux opérandes, comme par exemple des bornes calculées par une fonction.
Mais aussi par la facilité de lecture de if InRange(X, A, B) then.
Sinon, tu as une sacrée mémoire, c'était presque ça, pour TimeInRange que trouve plus lisible et surtout que l'on comprend tout de suite ce que le code fait, sans compter les avantages, cela Tronque implicitement la partie "Date" des TDateTime, cela corrige le A > B
Edit : EnsureRange est aussi pratique, non pas pour vérifier si c'est entre les bornes mais "seuiller" la valeur, si hors des bornes, cela retourne la borne min ou max
Merci pour ces précisions ShaiLeTroll
A+
Charly
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager