Thread Runden *war Subtrahieren in Perl ...
(55 answers)
Opened by Muffi at 2013-09-25 10:41 2013-09-25T06:56:28 Muffi Und wieso kann man mit Computern trotzdem kaufmännische Anwendungen benutzen? Ich bin nach wie vor sehr zufrieden mit dieser Lösung: Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 sub runden { my $zahl=shift; return undef unless(defined($zahl)); my $stelle=shift || 0; # prepare for Xe[+-]Y Notation # handle big float my ($pre,$number,$exponent)=$zahl=~/^([-+]?)([\d.]+)(?:e([+-]?\d+))?$/; $exponent=0 unless defined($exponent); $pre='' if(!$pre || $pre ne '-'); # full integer number with exponent my ($l)=$number=~/\.(.+)$/; $exponent-=$l?length($l):0; $number=~y/.//d; # correct position for round my $stellen=$stelle+$exponent; if($stellen<0) { $exponent=-$stelle; my $add=substr(('0'x abs($stellen)).$number,$stellen,-$stellen); # round... $number+=$add; $number=('0'x abs($stellen)).sprintf("%.0f",$number); substr($number,$stellen,-$stellen,''); } # reconstruct number $zahl="$pre${number}e$exponent"; # format number if($zahl==0) { $zahl='0'; } else { $zahl=sprintf("%.${stelle}f",$zahl); $zahl=~s/\.?0+$// if(index($zahl,'.')>0) } return $zahl; } Entnommen aus: msg #129240 mit bestem Dank an topeg! Muffi, ich weiß nicht, worauf du da rumreitest aber es gilt ja immer, Lösungen zu finden und nicht Gründe dagegen. 10 print "Hallo"
20 goto 10 |