probleme d'arrondis

probleme d'arrondis - Perl - Programmation

Marsh Posté le 16-07-2003 à 17:42:15    

salut je ne trouve pas comment faire pour calculer en nb reel avec perl (2chiffre apres la virgule par ex)
 
voila mon bout de code

Code :
  1. @Record = split("\;",$Record);
  2. @Record[5]=@Record[5]+(@Record[5]*$1/100);
  3. $Record=join("\;",@Record);


perl me fait bien le calcul mais arrondis les chiffres
comment faire ?
merci !

Reply

Marsh Posté le 16-07-2003 à 17:42:15   

Reply

Marsh Posté le 16-07-2003 à 20:01:46    

Salut
je sais pas trop ce que tu split, mais à priori tu fait une erreur à la deuxieme ligne, puisque tu ecrit @record[5] au lieu de $record[5]. Et ya koi dans $1 ?

Reply

Marsh Posté le 17-07-2003 à 10:45:04    

:bounce:

Reply

Marsh Posté le 17-07-2003 à 10:54:25    

c'est tellement n'importe quoi ce que tu as ecrit que j'ai du mal a comprendre ce que tu veux faire ...
 
Mais si tu veux juste arrondir ton nombre à deux chiffres après la virgule regarde ce topic:
http://forum.hardware.fr/forum2.ph [...] subcat=392

Reply

Marsh Posté le 17-07-2003 à 11:03:48    

heu qu'est-ce qui va pas dans mon code ?
en fait  
-je lit une ligne dans un fichier texte ($record)
-le ; delimite des champs que je stock dans un tablo (@record)
-je mets a jour le champs n°5 du tablo (@record[5]) en fct d'un parametre saisie lors de l'appel du prog (ex perl etat.pl 5)
-pour des raison de code par la suite je reconstruit ma chaine intiale avec la valeur modifiée ($record)
expliquer tous ca n'est pas necessaire pour repondre au pb non ?


Message édité par djobidjoba le 17-07-2003 à 11:09:05
Reply

Marsh Posté le 17-07-2003 à 11:25:08    

Je t'ai pas demander de m'expliquer ton code, je sais ce qu'il fait mais il est quand même rocamboleque.
Déjà nommer de la même façon ta ligne et les resultats du split c'est litigieux, ensuite generalement on accede aux elements d'un tableau avec $TonTableau[taCellule].
 
Enfin par defaut perl n'arrondie pas les calculs, donc ça vient pas de ton bout de code la. La preuve? Essaye d'executer ce bout de script:

Code :
  1. #! /usr/bin/perl
  2. use strict;
  3.   my $number = "2.435643565";
  4.   $number = $number + $number*20;
  5.   print "\n\n", $number, "\n\n";
  6.   exit;

Reply

Marsh Posté le 17-07-2003 à 11:29:02    

vi merci j'ai trouvé la soluce
c t tout bete
je pensait recuperer l'argument avec $1 mais g du tomber sur un sale tuto  
en fait il faut utiliser la fonction "shift" pour les recuperer

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed