2010-01-25 6 views
8

J'essaie d'utiliser le module bignum en Perl et je veux définir la précision. Je sais que cela peut être fait par une doublure aussi détaillée sur le module's CPAN page:Comment puis-je définir le niveau de précision pour le bignum de Perl?

$ perl -Mbignum=p,-50 -le 'print sqrt(20)' 

... qui imprimera la racine carrée de 20 à 50 chiffres de précision, mais ce que je me demande est s'il y a de toute façon de définir la précision d'un script, à savoir quelque chose comme:

#!/usr/bin/perl 
use bignum; 

setPrecision(-50); 
print sqrt(20); 

J'ai cherché ici, Google et PerlMonks sans chance jusqu'à présent. Merci d'avance. .

+5

Indiquez-le comme argument du package dans la ligne 'use bignum'. –

+4

Voir 'perldoc perlrun'; 'perl -MPackage = foo, bar' équivaut à lancer le programme avec' use Package qw (foo bar) '. – ephemient

+2

Connexes: http://stackoverflow.com/questions/1838808/how-do-i-set-the-floating-point-precision-in-perl –

Répondre

11

par Anon suggestion de:

#!/usr/bin/perl 

use strict; 
use warnings; 

use bignum (p => -50); 

print sqrt(20); 

pourraient vous intéresser regarder les docs pour Math::BigFloat et qui Math::BigInt bignum utilise.

+0

Parfait, grâce à la fois à Anon & You. – theraccoonbear

+1

Cela ne fonctionne pas pour moi, Perl est faux ici: 'perl -e 'utilise bignum (p => -100); printf ("% 1.50f \ n ", sqrt (23));' 'sorties ' 4.79583152331271911350540904095396399497985839843750' Ceci est vrai: 'perl -Mbignum = p, -50 -le 'impression sqrt (23)'' ' 4.79583152331271954159743806416269391999670704190413' par rapport au calcul correct de bc: échelle = 50' echo »; sqrt (23) "| bc' ' 4.79583152331271954159743806416269391999670704190412' –

Questions connexes