Deutsch   English   Français   Italiano  
<63fb71b1$0$25940$426a74cc@news.free.fr>

View for Bookmarking (what is this?)
Look up another Usenet article

Path: ...!2.eu.feeder.erje.net!feeder.erje.net!proxad.net!feeder1-2.proxad.net!cleanfeed2-b.proxad.net!nnrp1-2.free.fr!not-for-mail
Subject: Re: Arrondir un nombre
Newsgroups: fr.comp.lang.perl
References: <63fa4ea3$0$3076$426a74cc@news.free.fr>
 <ttdvv3$4ef$2@shakotay.alphanet.ch>
From: kurtz le pirate <kurtzlepirate@free.fr>
Organization: Compagnie de la Banquise
Date: Sun, 26 Feb 2023 15:50:17 +0100
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:78.0)
 Gecko/20100101 Thunderbird/78.14.0
MIME-Version: 1.0
In-Reply-To: <ttdvv3$4ef$2@shakotay.alphanet.ch>
Content-Type: text/plain; charset=utf-8
Content-Language: fr
Content-Transfer-Encoding: 8bit
Lines: 43
Message-ID: <63fb71b1$0$25940$426a74cc@news.free.fr>
NNTP-Posting-Date: 26 Feb 2023 15:50:25 CET
NNTP-Posting-Host: 90.107.43.253
X-Trace: 1677423025 news-3.free.fr 25940 90.107.43.253:49976
X-Complaints-To: abuse@proxad.net
Bytes: 1956

On 25/02/2023 22:52, Marc SCHAEFER wrote:
> kurtz le pirate <kurtzlepirate@free.fr> wrote:
>> Comme j'ai de gros fichiers à traiter (100/120Mo de nombres), je ne me
>> demande si sprintf est suffisament rapide.
> 
> Probablement, sinon il y a aussi le module POSIX avec les fonctions du C
> ceil, floor, etc.
> 
>> Des idées ?
> 
> Ou des magouilles comme int(nombre * 100) / 100
> 
> Ou encore int($num + 0.99);
> 

En fait oui, j'ai fait quelques tests et sprintf est bien suffisant.
Comparaison des temps avec le nearest de Math::Round;

100 numbers
  sprintf -> 0.000081
  nearest -> 0.000092
1000 numbers
  sprintf -> 0.000489
  nearest -> 0.000859
10000 numbers
  sprintf -> 0.004879
  nearest -> 0.008612
100000 numbers
  sprintf -> 0.050027
  nearest -> 0.086946
1000000 numbers
  sprintf -> 0.490112
  nearest -> 0.865844
10000000 numbers
  sprintf -> 4.948705
  nearest -> 8.717012




-- 
kurtz le pirate
compagnie de la banquise