Sujet : Re: Arrondir un nombre
De : kurtzlepirate (at) *nospam* free.fr (kurtz le pirate)
Groupes : fr.comp.lang.perlDate : 26. Feb 2023, 15:50:17
Autres entêtes
Organisation : Compagnie de la Banquise
Message-ID : <63fb71b1$0$25940$426a74cc@news.free.fr>
References : 1 2
User-Agent : Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:78.0) Gecko/20100101 Thunderbird/78.14.0
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 piratecompagnie de la banquise