2010-01-24 11 views

Respuesta

10

Si sólo desea utilizar enteros grandes, se puede utilizar el bigint, que puede ámbito de aplicación a un archivo:

use bigint; 

o simplemente un alcance limitado:

{ 
use bigint; 
...; 
} 

Si necesita números de coma flotante grandes así como enteros grandes, puede usar el pragma bignum de la misma manera. De cualquier manera, esto ralentizará un poco su programa (o significativamente si está haciendo mucha matemática), por lo que solo debe usarlos para las partes donde realmente los necesita. Sin embargo, más rápido no es mejor que lo correcto. :)

Si desea un control muy preciso sobre los números que usan el big* matemática, puede usar las clases subyacentes que los implementan y crear objetos usted mismo en lugar de aplicar la semántica big* a todo. Mira que Math::Big* módulos.

Hablo de esto más en el capítulo Benchmarking de Mastering Perl ya que las computadoras son demasiado rápidas hoy en día para usar un factorial como función lenta, y también agregamos una sección sobre grandes números al próximo Effective Perl Programming, 2nd Edition.

15
+4

y posiblemente 'use bigint;' que hace * cada * literal numérico en su alcance un BigInt sin 'Math :: BigInt-> new'. Usar con cuidado, por supuesto. – hobbs

+4

O 'use bignum;', que se extiende bigint con BigFloat. – Anonymous

Cuestiones relacionadas