Newbies en perl, j'essaye d'introduire un division dans une modification de script. Celle ci fonctionne mais me donne un chiffre à virgule.
for ( $u = 1 ; $u <= $maxUser ; $u++ ) {
# Average with the upper number
$userCheckOutaverage[$u] = $userCheckOutElapsed[$u] / $maxFeat ;
WriteToScreenAndFile( \*REPORTFILE, sprintf( '%-30s %5d %15ss ',
$userName[$u], $userCheckOutTotal[$u], $userCheckOutaverage[$u] ) ) ;
}
Comment faire pour que $userCheckOutaverage[$u] soit un entier sans virgule?
# STFW NOOB.
Posté par Grunt . Évalué à 4.
THIS IS JUST A PLACEHOLDER. YOU SHOULD NEVER SEE THIS STRING.
[^] # Re: STFW NOOB.
Posté par dubis . Évalué à 1.
Sur Google j'ai cherché arrondir division perl sans succès ...
Mais grace à ton Doc j'ai pu toruvé :
$userCheckOutaverage[$u] = int($userCheckOutElapsed[$u] / $maxFeat) ;
Encore Merci
[^] # Re: STFW NOOB.
Posté par lom (site web personnel) . Évalué à 1.
les 2 solutions courantes sont:
- int ($ton_nombre + 0.5)
- utiliser printf/sprintf: printf("%.0f", $ton_nombre);
[^] # Re: STFW NOOB.
Posté par maxix . Évalué à 4.
[^] # the web is for newbies who can't read the manual
Posté par Krunch (site web personnel) . Évalué à 3.
pertinent adj. Approprié : qui se rapporte exactement à ce dont il est question.
# boucles
Posté par wagnerf . Évalué à 2.
foreach $u (1..$maxUser) {
....
}
[^] # Re: boucles
Posté par nodens . Évalué à 2.
Mais heureusement on peut utiliser la syntaxe de foreach :-)
for my $var (@array) {
...
}
(le my est en bonus, j'utilise le pragma strict et j'en suis fier)
# 2 possibilités
Posté par teoB . Évalué à 1.
- tu peux t'arranger pour toujours avoir un résultat entier en enlevant le reste de la division avant de faire la division. il suffit de remplacer A/B par (A - (A modulo B))/B. Par contre ça risque d'être moins performant comme méthode !?
[^] # Re: 2 possibilités
Posté par dubis . Évalué à 1.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.