Einzelnen Beitrag anzeigen

alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#33

Re: Typecast or not?

  Alt 10. Jan 2009, 16:10
Meflin, IntToStr interpetiert eine Zahl als String. Genauso wie diese hier:
Delphi-Quellcode:
function DecToRoman(Decimal: Longint): string;
const
  Numbers: array[1..13] of Integer =
    (1, 4, 5, 9, 10, 40, 50, 90, 100,
    400, 500, 900, 1000);
  Romans: array[1..13] of string =
    ('I', 'IV', 'V', 'IX', 'X', 'XL',
    'L', 'XC', 'C', 'CD', 'D', 'CM', 'M');
var
  i: Integer;
begin
  Result := '';
  for i := 13 downto 1 do
    while (Decimal >= Numbers[i]) do
    begin
      Decimal := Decimal - Numbers[i];
      Result := Result + Romans[i];
    end;
end;
Das ist kein Typecasting, sondern eine -ich wiederhole mich- Interpretation einer Zahl als folge arabischer Ziffern. Ebensogut könnten wir römische Ziffernfolgen, Maya-Glyphs oder ähnliche textuelle Repräsentationen von Zahlen verwenden. Das hat nichts mit Konvertierung im Sinne des Wiki-Artikels zu tun. Und schon gar nicht mit Typecasting.

Der Wiki-Artikel ist unglücklich formuliert, weil er zunächst Type conversion mit Type cast gleichsetzt.

Nach unserem Verständnis ist eine Konvertierung eine Überführung in einen anderen Datentyp, nach meinem Verständnis eben auch in den Datentyp 'Römische Zahlen als String'. Ich glaube, in diesem Verständnis liegt Dein Problem, meins übrigens auch. Ich musste den Artikel mehrmals lesen, um diesen Unterschied zwischen meinem Verständnis einer Konvertierung und dem im Wiki-Artikel zu verstehen. Im Übrigen ist der englische Artikel hier etwas genauer, aber unglücklich finde ich die Formulierung auch.

Für völlige Verwirrung würde übrigens der Einwand führen, das SQL hier Deine Definition nahelegt, zumindest Microsoft:
select cast (1 as varchar(10))
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat