2010-01-24 4 views

Répondre

10

Si vous voulez seulement utiliser les grands entiers, vous pouvez utiliser le bigint, que vous pouvez limiter la portée d'un fichier:

use bigint; 

ou tout simplement une portée limitée:

{ 
use bigint; 
...; 
} 

Si vous avez besoin de grands nombres à virgule flottante ainsi que de grands entiers, vous pouvez utiliser le pragma bignum de la même manière. D'une manière ou d'une autre, cela ralentira légèrement votre programme (ou de manière significative si vous faites beaucoup de maths), donc vous ne devriez les utiliser que pour les parties où vous en avez vraiment besoin. Cependant, plus vite n'est pas mieux que correct. :)

Si vous voulez un contrôle précis sur lesquels les numéros utilisent le calcul big*, vous pouvez utiliser les classes sous-jacentes qui les mettent en œuvre et de créer vous-même des objets plutôt que d'appliquer la sémantique big* à tout. Regardez que Math::Big* modules. Je parle de cela plus dans le chapitre Benchmarking de Mastering Perl puisque les ordinateurs sont trop rapides de nos jours pour utiliser une factorielle comme une fonction lente, et nous avons également ajouté une section sur les grands nombres au prochain Effective Perl Programming, 2nd Edition.

15
+4

et éventuellement 'use bigint;' ce qui fait de * tout * littéral numérique dans sa portée un BigInt sans 'Math :: BigInt-> new'. Utilisez avec soin, bien sûr. – hobbs

+4

Ou 'utiliser bignum;', qui étend bigint avec BigFloat. – Anonymous

Questions connexes