Thread Kaufmännisch korrekt runden (67 answers)
Opened by bianca at 2009-12-11 07:14

bianca
 2009-12-11 19:31
#129234 #129234
User since
2009-09-13
7016 Artikel
BenutzerIn

user image
2009-12-11T17:46:12 pq
wieso multiplizierst du eigentlich nicht vor dem runden mit 10 ^ stellenanzahl, rundest dann und teilst dann wieder?

Tatsache! Ich fall um. Das hier durchläuft alle meine Tests bisher sauber:

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
sub pq {
        my $num = shift (@_) || 0;
        my $stellen = shift (@_) || 0;
        my $vorzeichen = '';
        my $rounded = '0';
        if ($stellen >= 0 && $stellen <= 9 && !($num =~ /[^+-\.0-9]/)) {
                if (substr ($num,0,1) eq '-' || substr ($num,0,1) eq '+') {
                        $vorzeichen = '-' if substr ($num,0,1) eq '-';
                        $num = substr ($num,1);
                }
                $rounded = int( $num * (10 ** $stellen) + 0.5 ) / 10 ** $stellen;
        }
        return ($rounded ne '0' ? $vorzeichen : '') . $rounded;
}


Ich hab aber bisher schon mal soetwas verwendet und muss mal sehen, was da falsch war.

Dennoch Danke!
10 print "Hallo"
20 goto 10

View full thread Kaufmännisch korrekt runden