Logo

Programming-Idioms

This language bar is your friend. Select your favorite languages!
  • Perl

Idiom #236 Large quotient

Initialize a quotient q = a/b of arbitrary precision. a and b are large integers.

use v5.10;
use Math::BigRat;
my $a = Math::BigRat->new(  '1_000_000_000_000_000_000' );
my $b = Math::BigRat->new( '10_000_000_000_000_000_000' );
my $q = $a / $b;

say $q;  # prints 1/10

Core module Math:BigRat (available since v5.8.0) provides handling of big rational numbers. (perl treats underscores in numbers as a group separator, used here for visual clarity.)
import "math/big"
q := new(big.Rat)
q.SetString(str)

str is a quotient string including numerator, slash, denominator.

New implementation...