Welchen Datentyp nimmt man zum speichern von Zahlen die mit 0 beginnen?

6 Antworten

Mit Zahlen zu rechnen und eine formatierte Ausgabe mit oder ohne führende Nullen zu erzeugen sind zwei völlig voneinander unabhängige Sachen. Es ist vollkommen egal mit welchem Zahlhentyp Du arbeitest, also ob short, unsigned short, int, unsigned int, long, unsigned long, float, double. Das Rechnen mit diesen Zahlen ist vollkommen eigenständig und hängt nicht von irgendeiner Formatierung ab.

Die konkrete Ausgabe einer Zahl wird durch Formatierungsangaben erzwungen, also mit oder ohne führenden Nullen, Anzahl der Nachkommastellen, mit und ohne Vorzeichen, wissenschaftliche Methode oder als Dezimalzahl etc.

Beispiel in C-Notation:

Die Formatierung %09d gibt eine Integerzahl aus, hat sie weniger als 9 Stellen, wird mit führenden Nullen aufgefüllt.


spazzpp2  29.09.2010, 15:53

Hier! Er hat die Lösung für dich.

0

Wie unter mir schon einer geschrieben hat. Gehen führende Nullen mit einem String. Je nach Programmiersprache kannst du den String ja wieder in einen Int-/Double-/Float-Wert casten. Oder du speicherst die zahlen z. B. in einem Int ab. Dann wird die 00345 aber zur 345. Aber natürlich kannst du dir auch hier eine Methode bauen, die die führenden Nullen bei der Ausgabe wieder davor setzt.

int oder long, ja nachdem, wie groß die Zahlen werden sollen und wenn sie keine Nachkommestellen haben.


Tigerle99 
Fragesteller
 29.09.2010, 09:45

ja ich meinte 0, und ohne Komma. Aber mir wurde gesagt das mit short oder int keine 0 an Anfang gespeichert werden kann, das die dann nicht wieder ausgegeben wird. also zb. 0123, das dann nur 123 ausgegeben wird

0

Ich empfehle das ganze als Character deklarieren. Character beschreibt nicht, dass er NUR Buchstaben oder NUR Zahlen oder so nimmt, sondern, dass er jegliche Art von ZEICHEN aufnehmen kann.

Wenn Du wirklich 00123 oder 0123 als verschienene Zahlen speichern willst dann geht nur ein String.

In einem Long wird die 123 als Zahl gespeichert die aber auf Wunsch auch mit einer führenden Null ausgegeben werden kann.


Tigerle99 
Fragesteller
 29.09.2010, 09:54

aber wie gehts das? string ist doch für wörter

0
boriswulff  29.09.2010, 10:51
@Tigerle99

Du kannst in einem String natürlich auch Ziffern abspeichern. Ich habe mir sogar mal alse Mathebibliotek geschrieben um mit Strings rechnen zu können. Das ist z.B. sinnvoll für ganz ganz große Zahlen. Es ist immer die Frage was Du damit machen willst.

Um die Zahlen 1 bis 9999 vierstellig mit führenden Nullen auszugeben langt eine einfache Formatierung.

0
Kobold82  29.09.2010, 11:18
@boriswulff

Wenn Du in einem String Ziffern abspeicherst werden sie als Charakter gesehen denn '1'+'2' != 3. '1' + '2' = 'c'. Denn der ASCII-Wert würde bei einer Addition verwendet werden und der ist 49 für '1' und 50 für '2' -> 99 und das ist das 'c'. Was Du meinst ist ein Array und kein String! Ein String ist ein Spezialfall eines Arrays und zwar ein Char-Array.

0