Perl:第一个数字到第二个数字的基数(基数:2到9)

时间:2018-04-01 08:41:39

标签: perl

我正在尝试这段代码,但它以Nan的形式给出了一些答案。 我认为$decimal = ($decimal / $val2);不正确,无法弄清楚此代码中有什么错误。 有没有其他方法来计算这个? 这是我的代码:

#!/usr/bin/perl
use strict;
use warnings;
sub Base {
    my $val1; 
    my $val2;
    $val1=$_[0];
    $val2=$_[1];
    my $ans;my $i;
    my $decimal;
    my $remainder;
    $decimal=$val1;
    $ans=0;
    $i=1;
    while($decimal > 0)
    {
        $remainder = $decimal % $val2;
        $ans = $ans + ($remainder * $i);
        $i = $i * 10;
        $decimal = ($decimal / $val2);
    }
    print $ans;
}
# Function call
print "enter 1st no.\n ";
my $n1 = <STDIN>;
print "enter 2nd no.\n ";
my $n2 = <STDIN>;
Base($n1,$n2);

1 个答案:

答案 0 :(得分:0)

$decimal = $decimal / $val2;

应该是

$decimal = int( $decimal / $val2 );

$decimal = ( $decimal - $remainder ) / $val2;