rainghost Geschrieben 8. Juli 2004 Teilen Geschrieben 8. Juli 2004 Ich habe eine 24 stellige Zahl (integer), von der ich modulo (%) 97 rausfinden möchte. Als Ergebnis der Berchnung kommt immer "0" raus. (200800000970375700131400 % 97) Ich glaube es liegt daran, dass die Zahl viel zu groß für PHP ist. Liege ich richtig? Gibt es eine möglichkeit den Rest (modulo) dieser Zahl in PHP rauszufinden? MfG Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kLeiner_HobBes Geschrieben 8. Juli 2004 Teilen Geschrieben 8. Juli 2004 Ähmm .. wie speicherst du denn diese Zahl?? Da brauchst du ja ungefähr 78 Bits für. Ich meine, daß PHP maximal +/- 2 Mia., also signed 32bit macht. Und selbst wenn du einen 64-Bit-Prozessor hast, reicht das net Hast du diese Int-Zahl denn mal ausgegeben? Steht dann immer noch 200800000970375700131400 drin? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kills Geschrieben 8. Juli 2004 Teilen Geschrieben 8. Juli 2004 gibt es keine möglichkeit, die zahl vielleicht umzurechnen in eine andere einheit etc? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
rainghost Geschrieben 8. Juli 2004 Autor Teilen Geschrieben 8. Juli 2004 Wenn ich die Zahl ausgebe wird sie so angezeigt: 2.0080000097038E+023 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
rainghost Geschrieben 8. Juli 2004 Autor Teilen Geschrieben 8. Juli 2004 Frage ist jetzt: Wie kriege ich das Modullo dieser Zahl raus? 200800000970375700131400 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kLeiner_HobBes Geschrieben 8. Juli 2004 Teilen Geschrieben 8. Juli 2004 Wie du an deiner Ausgabe siehst, ist die Zahl nicht mehr vollständig gespeichert. Also wirst du auch kein genaues Modulo herausbekommen. Natürlich kannst du dir einen eigenen Algorithmus schreiben, der solche Zahlen im Textformat entgegennimmt und dir das dann ausrechnet. Übrigens, 200800000970375700131400 modulo 97 ist 10. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kills Geschrieben 8. Juli 2004 Teilen Geschrieben 8. Juli 2004 was ist das für eine Zahl? Was beschreibt sie? Welche Einheit? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
rainghost Geschrieben 8. Juli 2004 Autor Teilen Geschrieben 8. Juli 2004 das ist eine IBAN Kontonummer. Ich bin gerade dabei einen IBAN-Rechner zu programmieren. Um die Prüfziffer herauszufinden, brauche ich das modulo. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kLeiner_HobBes Geschrieben 8. Juli 2004 Teilen Geschrieben 8. Juli 2004 Hier ist der Code:$ktnr = "200800000970375700131400"; $temp = ""; $teiler = 97; $i = 0; while ($i < strlen($ktnr)) { do { $temp.=$ktnr{$i++}; $erg = (int)$temp % $teiler; } while ( $erg == (int)$temp && $i < strlen($ktnr) ); $temp = $erg; } print "Modulo: ".$temp;[/PHP] ermittelt aber wirklich nur das Modulo. Wenn du jetzt noch das Ganzzahl-Divisionsergebnis dabeihaben willst, mußt du das selber einbauen HTH Benjamin Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
rainghost Geschrieben 8. Juli 2004 Autor Teilen Geschrieben 8. Juli 2004 Super, danke schön! Die Zeile: $temp.=$ktnr{$i++}; 1. Was bedeutet der Punkt hinter $temp? 2. Was macht {$i++} Dass ++ ein Hochzählen um eins ist, weiß ich. Aber was macht dieses {$i++} mit der Variable $ktnr? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kLeiner_HobBes Geschrieben 8. Juli 2004 Teilen Geschrieben 8. Juli 2004 also: 1. der .= Operator hängt dem links davon stehenden String den Ausdruck, der rechts steht, dran. 2. mit den geschweiften Klammern greife ich auf den Buchstaben des Strings zu, und zwar dem, dessen Position in den Klammern angegeben ist. Das ist wie bei C der []-Zugriff auf Zeichenketten (und Arrays im allgemeinen). Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
rainghost Geschrieben 8. Juli 2004 Autor Teilen Geschrieben 8. Juli 2004 ok. (int)$temp Was bedeutet das (int) vor der Variablen? Dann hätte ich alles was ich wissen muss ;-) Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kLeiner_HobBes Geschrieben 8. Juli 2004 Teilen Geschrieben 8. Juli 2004 Das (int) bedeutet, daß ich explizit einen Int haben will. Eigentlich setzte ich $temp ja als string zusammen, aber ich will ja danach die Zahl haben. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.