Sprintf & Arrondi [Résolu] - Perl - Programmation
Marsh Posté le 07-10-2011 à 11:36:02
Il est fort ce Gilou,
Perso je n'ai pas compris ce que tu as écris mais ça fonctionne au poil.
Encore merci !
Marsh Posté le 07-10-2011 à 11:42:23
C'est l'opérateur ternaire des geeks qui posent problème ?
La traduction de la ligne :
$_[0] > 0 ? int($_[0] + .5) : -int(-$_[0] + .5) |
est :
if ($_[0] > 0) |
Et le 0,5 est la valeur classique qui permet de faire l'arrondi vers l'entier le plus proche.
Marsh Posté le 07-10-2011 à 11:58:35
Code :
|
car les accolades sont obligatoires en perl avec un if..else
Et pour être tout à fait complet,
$_[0] c'est pour utiliser directement la valeur passée a la subroutine, et éviter une recopie inutile de la valeur dans une variable temporaire.
$_[0] est le premier élément de la liste @_, et cette liste est celle des valeurs passée en paramètre a la subroutine lors de l'appel.
A+,
Marsh Posté le 07-10-2011 à 12:06:27
Ok merci c'est plus clair
Ce qui n'était pas clair c'était le one-liner
Donc:
? signifie alors
: signifie sinon
Merci.
Marsh Posté le 07-10-2011 à 02:30:36
Bonjour,
Le script ci-dessous fonctionne mais cependant j'ai une question:
Si mon pourcentage fait 39,62% il m'affiche 39%
Je voudrai l'arrondi à 40%
Si c'était 39,12% je voudrai qu'il m'affiche 39%
Est-ce possible?
Message édité par Sethenssen le 07-10-2011 à 11:36:20