jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 14 déc. 2007 à 11:19
Salut,
En Appuyant sur F2 dans l'IDE VB tu te retrouve dans l'explorateur d'objets.
Tu peux Alors taper Abs dans la textbox de recherche et voir
Function Abs(Number)
Membre de VBA.Math
Renvoie la valeur absolue d'un nombre
Si tu as la MSDN c'est encore plus simple Tape F1 sur le mot Abs dans le code
tu tombe la dessus. (la MSDN est aussi disponible sur internet)
[javascript:alink_4.Click() argument]number peut contenir toute
<object id= "alink_5" type="application/x-oleobject" classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11"></object>[javascript:alink_5.Click() expression numérique] valide. Si l'argument
number contient une valeur de type
<object id ="alink_6" type="application/x-oleobject" classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11"></object>[javascript:alink_6.Click() Null], Null est renvoyé ; s'il
s'agit d'une
<object id ="alink_7" type="application/x-oleobject" classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11"></object>[javascript:alink_7.Click() variable] non initialisée, zéro est
renvoyé.
Remarques
La valeur absolue d'un nombre est sa valeur sans le signe. Par exemple,
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 14 déc. 2007 à 14:47
Au fait Elxior, je vois au 'return' que tu es en .net donc tu as les manipulateurs de bits je crois.
Dans ce cas, c'est totalement conter productif de générer une multiplication pour si peu.
- inverser les bits (NOT EAX)
- ajouter 1 (INC EAX)
sera autrement plus rapide et aucun risque d'overflow.
ciao...
BruNews, MVP VC++
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_JMO
Messages postés1854Date d'inscriptionjeudi 23 mai 2002StatutMembreDernière intervention24 juin 201827 14 déc. 2007 à 17:02
Bonsoir à tous,
Julien (salut) ayant expliqué la fonction abs(), il reste la fonction Sng(), qui elle, renvoie
un entier indiquant le signe d'un nombre.
MsgBox Sgn(6.5) &vbtab& "Sgn(6.5) retourne 1 car nombre > 0" &vbCr&_
Sgn(+7.5) &vbtab& "Sgn(+7.5) retourne 1 car nombre > 0" &vbCr&_
Sgn(+0) &vbtab& "Sgn(+0) retourne 0 car nombre = 0" &vbCr&_
Sgn(0) &vbtab& "Sgn(0) retourne 0 car nombre = 0" &vbCr&_
Sgn(-0) &vbtab& "Sgn(-0) retourne 0 car nombre = 0" &vbCr&_
Sgn(-2.5) &vbtab& "Sgn(-2.5) retourne -1 car nombre < 0"
Merci [auteur/LECORSAIRE59/1168504.aspx lecorsaire59] de préciser ta demande.
mstarsup5
Messages postés527Date d'inscriptionlundi 15 octobre 2007StatutMembreDernière intervention10 octobre 20131 15 déc. 2007 à 12:30
Euh...
Elxior,
Function RemplaceABS(Number as Integer) as Integer
if Number < 0 then
return Number + (Number*2)
else
return Number
end if
End Function
Si je lis bien...
Si nombre négatif, alors 3 fois ce nombre=sa valeur absolue...
Il faut mettre Number-(Number*2) pour que ça marche :p
Mais dans ce cas là, ça revient à mettre return -Number, puisque a-2*a=-a...
Enfin bref, ça revient à la définition quoi, pas besoin de faire des additions ou je ne sais quoi ^^