Der zweckmäßige Umgang mit Werten vom Typ REAL so, daß sich die Ungenauigkeiten bei einer längeren Rechnung nicht zu sehr aufschaukeln, ist Gegenstand eines eigenen Wissenschaftszweiges: numerische Mathematik.
Als Grundlage für die Bearbeitung von Texten haben wir in allen modernen Sprachen schließlich noch den Datentyp CHAR. Er umfaßt mindestens alle druckbaren und über eine Tastatur eingebbaren Zeichen einschließlich des Leerzeichens (" "); oft sind noch andere Spezialzeichen über Hilfskonstrukte erreichbar. Der zu Grunde liegende Zeichenvorrat ist in Modula (und in den meisten anderen Sprachen) heute der "American Standard Code for Information Interchange" ASCII, oft mit nationalen Erweiterungen (wie die deutschen Umlaute), die bei der Übertragung auf andere Systeme manchmal für Überraschungen sorgen. Abweichend davon verwenden Großrechnersysteme (historisch bedingt) oftmals noch den von IBM entwickelten Code EBCDIC. Seit einigen Jahren wird unter der Bezeichnung UNICODE versucht, einen für alle Sprachen der Welt ausreichenden Code zu definieren, doch hat sich diese Codierung (außer in der Sprache JAVA) bisher nicht breit durchgesetzt.
In Modula werden Werte vom Typ CHAR in Paaren von einfachen (') oder doppelten (") Anführungszeichen notiert. Auf dieselbe Weise können auch Zeichenketten ("Strings") angegeben werden; doch ist zwischen einem Einzelzeichen und einer Zeichenfolge der Länge 1 logisch ein Unterschied! Die Zeichenfolge der Länge Null ("") gibt es auch.
Zeichen treten nicht nur als Bestandteile von (alphanumerischen) Texten auf, sondern auch, vor allem in der Mathematik, als Namen von Objekten. Dabei zeigt sich oft, daß der verfügbare Zeichenvorrat nicht ausreicht; Abhilfe schafft der Gebrauch von längeren Zeichenketten, von Bezeichnern, als Namen.