AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Ungültiger Gleitkommawert

Ein Thema von pp-deluxe · begonnen am 21. Apr 2006 · letzter Beitrag vom 24. Apr 2006
Antwort Antwort
pp-deluxe

Registriert seit: 7. Apr 2006
10 Beiträge
 
#1

Ungültiger Gleitkommawert

  Alt 21. Apr 2006, 10:54
G.ude

Ich möchte 2 Werte miteinander verrechnen, es scheitert jedoch an einem EConvertError!
DIe Fehlermeldung lautet: 26.51551922 ist kein gültiger Gleitkommawert.

Hier der Quelltext:

Code:
procedure TForm1.Button1Click(Sender: TObject);
var wert1, wert2: string;
var wert11, wert12, wert3: real;
begin
      wert1 := Copy(Stringgrid1.cells[0,1], 7, 11);
      wert2 := Copy(Stringgrid1.cells[0,2], 7, 11);
      wert1 := '+' + wert1;
      wert2 := '+' + wert2;

      wert11 := StrToFloat(wert1);
      wert12 := StrToFloat(wert2);
      wert3 := wert12 - wert11;
      label1.caption := FloatToStr(wert3);
An was liegts?

ThX
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Ungültiger Gleitkommawert

  Alt 21. Apr 2006, 10:59
Versuchs mal mit Extended statt Real
Falscher DecimalSeparator?
Warum Fügst du ein Plus in den String ein (wert1 := '+' + wert1; )?
Markus Kinzler
  Mit Zitat antworten Zitat
kalmi01
(Gast)

n/a Beiträge
 
#3

Re: Ungültiger Gleitkommawert

  Alt 21. Apr 2006, 10:59
Hi,

könnte es sein, das Deine lokale Einstellung kein . sondern ein , als Trenner erwartet ?

Probiers mal mit:DecimalSeparator := '.';
  Mit Zitat antworten Zitat
pp-deluxe

Registriert seit: 7. Apr 2006
10 Beiträge
 
#4

Re: Ungültiger Gleitkommawert

  Alt 21. Apr 2006, 11:11
super, mit DecimalSeparator := '.'; und extended klappts

Das Plus war für das Vorzeichen, hab ich aber wieder entfernt

Vielen Dank!
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

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

Re: Ungültiger Gleitkommawert

  Alt 21. Apr 2006, 11:15
Ich konvertiere meine Float-Strings immer so, das das lokale Dezimaltrennzeichen verwendet wird:
Delphi-Quellcode:
If DecimalSeparator = '.Then
  MyValueStr := StrReplace (MyValueStr, ',', '.') // Komma in Punkt
Else
  MyValueStr := StrReplace (MyValueStr, '.', ','); // Oder Punkt in Komma

MyValueFloat := StrToFloat (MyValueStr);
Wieso sollte man dem Anwender per DecimalSeparator := '.'; ein anderes Trennzeichen aufschwatzen?
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
kalmi01
(Gast)

n/a Beiträge
 
#6

Re: Ungültiger Gleitkommawert

  Alt 24. Apr 2006, 07:08
Hallo alzaimer,

Zitat:
Wieso sollte man dem Anwender per
.....
ein anderes Trennzeichen aufschwatzen?
soll man ja nicht.
Aber warum soll man alle seine Daten konvertieren, wenn sie nunmal mit "." vorliegen ?
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:33 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz