If possible, the best solution is to calculate your decimal numbers from integer numbers and not from other decimal numbers. This prevents an accumulation of error. If you case, this is possible.
$bu[0] = 0;
for my $i (1 .. 2*$nb) { # Easier to read. Just as efficient.
$bu[$i] = $i * $beu; # Fix.
print "$i\t$bu[$i]\n";
}