Probleme mit Kylix und Reellen Zahlen
-
Hallo,
ich habe folgendes Problem, ich weise in Kylix 3.0 (Build 4.186) einer Variable vom typ double oder float einen Wert
//Zum Beispiel double test = 0.4;
zu. doch in der Variable steht dann nur der Wert vor dem Punkt (in dem Fall 0). Gibt es da einen bekannten Fehler von Kylix oder mache ich etwas falsch?
Danke schon im Voraus für eure Hilfe
-
Wie prüfst Du denn den Inhalt der Variablen
-
Das liegt an den (deutschen) Locale-Settings. Zum Beheben des Problems kannst du in Kylix unter Tools|Environment Options|Environment Variables|User overrides eine Variable mit Namen LC_NUMERIC und dem Wert 'C' oder 'en_US' hinzufügen (ohne die '').
Peter:
Du denkst an eine unbeabsichtigte Integerwandlung?
Ist es diesmal aber nicht, s.o.
-
@Jansen
In der TatZuerat dachte ich zwar spontan an ein falsches Trennzeichen (Punkt bzw. Komma), verwarf aber diesen Gedanken wieder. Hatte noch nie so ein Prob im Zusammenhang mit BCB (nur DB) und Kylix hab ich bisher noch nicht verwendet
-
Hallo,
danke erstmal für euer Tipps, leider hat es trotzdem nicht funktioniert. Ich überprüfe den Inhalt der Variable mit dem Debugger. Vor der Initialisierung steht in der Variabele auch ein Gleitkommawert (z.B. -1.7345834743) nur nach der Zuweisung steh keiner mehr drin.
Das ist komisch...
-
KeinBenutzername schrieb:
leider hat es trotzdem nicht funktioniert
Du musst nach der Änderung mindestens das Projekt neu laden oder ggf. Kylix mal neu starten.
-
oder dein Linux Rechner
Reboot tut immer gut! He..
-
No way! Die Uptime ist heilig!
Ausserdem würde der Reboot nichts bringen, da bei der beschriebenen Methode die Locale nur lokal (:)), innerhalb von Kylix, überschrieben wird. Und schon der Neustart von Kylix sollte nicht wirklich nötig sein. Hier (SuSE 8.2) kann ich durch das Setzen von LC_NUMERIC zuverlässig zwischen "0" und "0.4" hinundherschalten, vorausgesetzt, ich lade das Projekt jeweils neu.
-
Hallo Jansen,
ich habe jedesmal Kylix neugestartet und es hat leider nichts gebracht.
Kann es sein das es an dem Compiler liegt?
-
Obwohl dürfte eigentlich nicht am Compiler liegen, da der Inhalt vor einer Zuweisung ja eine Gleitkommazahl ist...
-
probier mal mit float
-
Hab auch ich schon
-
double test; test = 0.4; ??
-
So funktioniert es auch nicht
/*1.*/ float test; /*2.*/ test = 0.4;
wenn ich mit dem Debugger durchgehen wäre der inhalt in Zeile 1 eine Gleitkommazahl nach Zeile 2 ist es keiner mehr.
-
Welches Linux und welche Kylix-Version (dt/en?) benutzt du eigenlich?
Und stell doch mal dein System probehalber auf US-Englisch um.
-
Ich benutze Kylix dt und Suse Linux 8.0... das mit dem auf englisch umstellen versuch ich mal
-
Hallo,
das mit der Sprache umstellen klappt auch nicht. An Borland kann ich mich auch nicht wenden, die Version ist zwar legal aber Zitat aus einer Mail von Borland:Eine technische Einzelanfrage kostet 225,00 € plus MwSt.
(Vorauszahlung per Kreditkarte erforderlich)Und das ist ein wenig viel.
Naja muss ich hoffen das sich das Problem bald löst.
-
Was du noch versuchen könntest wäre, die Kylix-Installation unter dem auf Englisch eingestellten System zu wiederholen. Am besten mit vorheriger Deinstallation einschliesslich des Löschens des .borland-Verzeichnisses in $HOME. Anschliessend sollte es dann auch unter der dt. Einstellung funktionieren, ggf. mit den o.g. LC_NUMERIC-Einstellungen.
PS. Bevor du deinstallierst poste doch mal deine borlandrc aus %HOME/.borland.
-
Dann werde ich es mal so versuchen.
Danke für euer Hilfe...