Font
[thread]5720[/thread]

Aufrunden - wie geht das?

Reader: 1


<< |< 1 2 >| >> 11 entries, 2 pages
silbersteine
 2003-09-14 17:07
#51880 #51880
User since
2003-08-18
27 articles
BenutzerIn
[Homepage] [default_avatar]
Hallihallo,

ich versuche gerade eine Berechnung zu runden:

Code: (dl )
my $maxrows = int(($files{'sumofmedias'}+$files{'sumofdirs'})/$config{'thumbs-cols'});


Also das Ergebnis soll die Anzahl der Reihen für eine Tabelle mit mehreren Spalten (cols) liefern. Aber leider wird durch int() ja abgerundet. Sprich: Die letzte Zeile wird nur angezeigt, wenn auch alle Zellen voll sind. Wie kann ich denn aufrunden? Also so, dass eine neue Zeile berücksichtigt wird, sobald eine Zelle davon belegt ist?
Viele Grüße aus Calberlah

Der SilberStein

<a href="http://www.skriptoase.de/">www.skriptoase.de</a>

# "It's all very perlish" (L.Wall)
eisbeer
 2003-09-14 17:21
#51881 #51881
User since
2003-08-29
347 articles
BenutzerIn
[Homepage] [default_avatar]
vielleicht:

Code: (dl )
1
2
3
4
5
6
if (($files{'sumofmedias'}+$files{'sumofdirs'}) % $config{'thumbs-cols'}) > 0) {
my $maxrows = int(($files{'sumofmedias'}+$files{'sumofdirs'})/$config{'thumbs-cols'}) + 1;
}
else {
my $maxrows = int(($files{'sumofmedias'}+$files{'sumofdirs'})/$config{'thumbs-cols'});
}
Die meisten PC Probleme befinden sich zwischen Bildschirm und Stuhl...
DS
 2003-09-14 17:24
#51882 #51882
User since
2003-08-04
247 articles
BenutzerIn
[default_avatar]
...oder auch auf einmal:
Code: (dl )
my $maxrows = int(($files{'sumofmedias'}+$files{'sumofdirs'}-1)/$config{'thumbs-cols'})+1;
silbersteine
 2003-09-14 17:31
#51883 #51883
User since
2003-08-18
27 articles
BenutzerIn
[Homepage] [default_avatar]
Hi,

danke für die Hilfe. Aber ich habe auch gesucht und bin fündig geworden. Dafür gibt es eine eigene Funktion im Posix-Modul: ceil() statt in(), und es wird immer aufgerundet. Funktioniert einwandfrei!
Viele Grüße aus Calberlah

Der SilberStein

<a href="http://www.skriptoase.de/">www.skriptoase.de</a>

# "It's all very perlish" (L.Wall)
havi
 2003-09-14 23:02
#51884 #51884
User since
2003-08-04
2036 articles
BenutzerIn
[Homepage]
user image
Passt jetzt vielleicht nicht ganz dazu, aber schon mal
Code: (dl )
use integer;


angesehen...

Gruss
Crian
 2003-09-15 12:30
#51885 #51885
User since
2003-08-04
5856 articles
ModeratorIn
[Homepage]
user image
abrunden: floor($wert) oder $wert >= 0 ? int($wert) : -int(-$wert+1)
runden: int($wert+0.5)
aufrunden: ceil($wert) oder $wert >= 0 ? int($wert+1) : -int(-$wert)\n\n

<!--EDIT|Crian|1063614905-->
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
eisbeer
 2003-09-15 16:07
#51886 #51886
User since
2003-08-29
347 articles
BenutzerIn
[Homepage] [default_avatar]
Kann's sein das floor und ceil undokumentiert sind ?
oder gehören die zu use integer; ?
Die meisten PC Probleme befinden sich zwischen Bildschirm und Stuhl...
Relais
 2003-09-15 16:41
#51887 #51887
User since
2003-08-06
2239 articles
ModeratorIn
[Homepage] [default_avatar]
[quote=eisbeer,15.09.2003, 14:07]Kann's sein das floor und ceil undokumentiert sind ?
oder gehören die zu use integer; ?[/quote]
sie gehören zu CPAN:POSIX.

use POSIX; # ab hier gibt es floor() und ceil() ... wer braucht floor - ?, es gibt doch int()! timtoady...
Erst denken, dann posten -- Frankfurt.pm-Treffen am Dienstag 07.01.2020 im Café Diesseits
22. Deutscher Perl-Workshop 04. bis 06.03.2020 in Erlangen.
Frankfurt Perl-Workshop 2020-1 ca. Mai-Juni 2020 im Haus der Jugend

Winter is Coming
Dubu
 2003-09-15 17:22
#51888 #51888
User since
2003-08-04
2145 articles
ModeratorIn + EditorIn

user image
[quote=Crian,15.09.2003, 10:30]abrunden: floor($wert) oder $wert >= 0 ? int($wert) : -int(-$wert+1)
runden: int($wert+0.5)
aufrunden: ceil($wert) oder $wert >= 0 ? int($wert+1) : -int(-$wert)[/quote]
Vorsicht: Was ergibt ceil(2) oder ceil(-2)? Was ergeben deine Algorithmen dagegen fuer $wert=2 oder $wert=-2?
Crian
 2003-09-18 19:37
#51889 #51889
User since
2003-08-04
5856 articles
ModeratorIn
[Homepage]
user image
[quote=Relais,15.09.2003, 14:41][quote=eisbeer,15.09.2003, 14:07]Kann's sein das floor und ceil undokumentiert sind ?
oder gehören die zu use integer; ?[/quote]
sie gehören zu CPAN:POSIX.

use POSIX; # ab hier gibt es floor() und ceil() ... wer braucht floor - ?, es gibt doch int()! timtoady...[/quote]
Der Unterschied liegt darin, dass ceil zur nächst höheren Zahl und floor zur nächst kleineren Zahl wechselt. Das ist bei negativen Zahlen wichtig.
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
<< |< 1 2 >| >> 11 entries, 2 pages



View all threads created 2003-09-14 17:07.