AGB  ·  Datenschutz  ·  Impressum  







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

Problem Mit FloatToStr

Ein Thema von inherited · begonnen am 19. Dez 2005 · letzter Beitrag vom 20. Dez 2005
Antwort Antwort
Seite 2 von 2     12   
lizardking

Registriert seit: 2. Sep 2005
76 Beiträge
 
Delphi 7 Enterprise
 
#11

Re: Problem Mit FloatToStr

  Alt 19. Dez 2005, 22:30
Hm... manchmal frage ich mich wirklich was der bessere Weg ist. Neue Loesungen zu zeigen oder Fehler zu berichtigen ? Ist ja schoen und gut, wenn der Threadstarter nun eine Loesung bekommt, aber :

if erg1[i+3]='5or if erg1[i+3]='6or if erg1[i+3]='7or if erg1[i+3]='8or if erg1[i+3]='9then Ueber dieses sonderbare Konstrukt verliert niemand ein Wort. *gruebel*. Ist ja nicht schlimm, wenn man sowas mal verzapft, aber wenn nur fertige Loesungen angeboten werden anstatt mal ein

if (erg1[i+3]='5') or (erg1[i+3]='6') or (erg1[i+3]='7') or (erg1[i+3]='8') or (erg1[i+3]='9') then anzubieten, dann gibt's erst einmal ein Erfolgserlebnis -- die naechste or-Verknuepfung auf eigene Faust wird aber definitiv wieder in die Hose gehen. Ich selber finde das sehr viel hilfreicher, wenn man mir ERST erklaert, was ich auf jeden Fall verkehrt gemacht habe und DANN, wie ich's noch besser und eleganter loesen kann ;-)

Gruesse,

Lizzy
  Mit Zitat antworten Zitat
Brüggendiek

Registriert seit: 13. Dez 2002
Ort: Dortmund
275 Beiträge
 
Delphi 5 Standard
 
#12

Re: Problem Mit FloatToStr

  Alt 19. Dez 2005, 22:33
Hallo inherited!

Auch wenn das Problem an sich gelöst ist, noch der Grund für die Fehlermeldung - damit beim nächsten Mal nicht wieder eine Frage nötig ist.

Der Fehler liegt in dieser Zeile:
if erg1[i+3]='5or if erg1[i+3]='6or if erg1[i+3]='7or if erg1[i+3]='8or if erg1[i+3]='9then Das ist so syntaktisch falsch und verursacht die Fehlermeldung! Richtig ist:
if (erg1[i+3]='5') or (erg1[i+3]='6') or (erg1[i+3]='7') or (erg1[i+3]='8') or (erg1[i+3]='9') then Die Fehlermeldung bei einer tieferen Zeile kommt daher, daß Deine if-Zeile nicht korrekt ausgewertet werden kann und deshalb die nächste Zeile als zum Statement gehörend betrachtet wird.

Dasselbe findet man ja auch bei einem vergessenen Semikolon am Ende der Anweisung - dann ist die Folgeanweisung angeblich fehlerhaft.

Gruß

Dietmar Brüggendiek

Edit: Roter Kasten, wo bist du?
Dietmar Brüggendiek
Die 6 Probleme des Programmierers: 1. dauert das länger, als man 2. glaubt, 3. geht das nicht so, wie man sich das 4. schlau überlegt hat, und 5. sitzt der Fehler da, wo man ihn 6. zuletzt sucht
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#13

Re: Problem Mit FloatToStr

  Alt 20. Dez 2005, 06:31
Guten Morgen, Lizzy.

Zitat von lizardking:
manchmal frage ich mich wirklich was der bessere Weg ist. Neue Loesungen zu zeigen oder Fehler zu berichtigen ?
Das frage ich mich jedes mal vorher und treffe dann eine Entscheidung, die völlig offen ist, weil sie von einer Vielzahl von Faktoren abhängt. Einer der wichtigsten ist dabei meine für die DP verfügbare Zeit.

Es ist nicht immer leicht den Kenntnisstand des Hilfesuchenden korrekt einzuschätzen und auch die Probleme selbst werden oft diffus vorgetragen. Im konkreten Fall kam ich zu dem Schluss, dass es um das Rundungsergebnis geht. Ich hätte die D7 Signatur von Round (hallo alzaimar) posten können und fertig, aber leider konnte ich mit meinem löchrigen Gedächtnis nicht mit Bestimmtheit sagen, dass es in D3 schon den Datentyp Extended gab.

Hätte ich den Eindruck gewonnen, es ginge mehr um den Weg als das Ziel, dann hätte ich aus didaktischen Gründen nicht bei der Klammerung aufgehört:

Delphi-Quellcode:
// besser so
if (erg1[i+3]='5') or (erg1[i+3]='6') or (erg1[i+3]='7')
or (erg1[i+3]='8') or (erg1[i+3]='9') then
begin
end;

// und noch besser so
if erg1[i+3] in ['5'..'9'] then
begin
end;
Und selbst hier darf dann nicht Schluss sein - aber ich muss meine Zeit einteilen. Sollte ich mich wieder einmal falsch entschieden haben, so tut es mir leid. Es wird noch öfter vorkommen. Ich werde damit leben müssen. Und die community auch.

Freundliche Grüße vom marabu
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

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

Re: Problem Mit FloatToStr

  Alt 20. Dez 2005, 07:33
Zitat von marabu:
Das geht nicht?
Delphi-Quellcode:
function Gerundet(rValue: real): real;
begin
  Result := Round(rValue * 1000) / 1000;
end;
Zitat von inherited:
HEY, das is ja GENIAL warum ich da nicht selbst drauf gekommen bin...
DANKE
Zitat von lizardking:
Hm... manchmal frage ich mich wirklich was der bessere Weg ist. Neue Loesungen zu zeigen oder Fehler zu berichtigen ?
Frag inherited.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Benutzerbild von inherited
inherited

Registriert seit: 19. Dez 2005
Ort: Rosdorf
2.022 Beiträge
 
Turbo Delphi für Win32
 
#15

Re: Problem Mit FloatToStr

  Alt 20. Dez 2005, 14:14
ich brauche ja nicht mehr als 3 angezeigte stellen, mit der 4. wird gerundet, also sollten 8 mehr als genug sein.
Jetzt wo dus das mit den Klammern sagst... omfg bin ich dumm. blackout oder so (wo habt ihr eigentlich eure höheren delphi-versionen her)
Nikolai Wyderka

SWIM SWIM HUNGRY!
Neuer Blog: hier!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 00:10 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