AGB  ·  Datenschutz  ·  Impressum  







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

String --> Single Single-->String

Ein Thema von DelphiManiac · begonnen am 18. Apr 2007 · letzter Beitrag vom 3. Mai 2007
Antwort Antwort
Seite 1 von 3  1 23      
DelphiManiac

Registriert seit: 5. Dez 2005
742 Beiträge
 
#1

String --> Single Single-->String

  Alt 18. Apr 2007, 09:41
Hallo ich habe habe folgendes Problem.
Ich arbeite mit dem Datentyp Single (einfache Genauigkeit nach IEEE)

Nun möchte ich Konvertierungen vom Typ String ( beispielsweise beim Auslesen eines Single Wertes aus einer INI-Datei)
in den Typ Single wandeln,

mache es zurzeit mit der Funktion StrToFloat:

 function StrToFloat(const S: string): Extended; overload; doch hier habe ich das Problem, dass Ungenauigkeiten entstehen, da der Rückgabetyp von StrToFloat höher auflöst (Extended) als
der Datentyp Single...


Hoffe ihr versteht meine Problematik.

Danke euch
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#2

Re: String --> Single Single-->String

  Alt 18. Apr 2007, 09:50
Max doch einfach eine Hex-Repraesentation des Single.
Delphi-Quellcode:
type
  THexSingle = record
  case Boolean of
    False: (Value: Single;);
    True: (Hex: array [0..SizeOf(Single)-1] of Byte;);
  end;

var
  Conv: THexSingle;
  S: string;
  I: Integer;
begin
  Conv.Value := 7.326;
  S := '';
  for I := Low(Conv.Hex) to High(Conv.Hex) do
    S := S + Format('%.2x', [Conv.Hex[I]]);
end;
Ich glaube die umgekehrte Konversion kriegst du alleine hin.
  Mit Zitat antworten Zitat
DelphiManiac

Registriert seit: 5. Dez 2005
742 Beiträge
 
#3

Re: String --> Single Single-->String

  Alt 18. Apr 2007, 09:54
Hi!!

Würde gerne eine Funktion haben, die mir Bsp.: '1,2345678' als Single speichert
Gibt es keine Delphi Funktion die mir aus einem String den entsprechenden Single zurückgibt (nicht als Extended)?
  Mit Zitat antworten Zitat
Benutzerbild von TeronG
TeronG

Registriert seit: 19. Jul 2004
Ort: München
960 Beiträge
 
Delphi 2007 Professional
 
#4

Re: String --> Single Single-->String

  Alt 18. Apr 2007, 10:15

Und einfach die Extended runden geht nicht!? (Genauigkeit wegrunden: Weichzeichner für Zahlen )
龍 Der Unterschied zwischen Theorie und Praxis ist in der Praxis größer als in der Theorie.
  Mit Zitat antworten Zitat
Benutzerbild von OldGrumpy
OldGrumpy

Registriert seit: 28. Sep 2006
Ort: Sandhausen
941 Beiträge
 
Delphi 2006 Professional
 
#5

Re: String --> Single Single-->String

  Alt 18. Apr 2007, 10:18
Gibt es denn einen zwingenden Grund, mit Single zu arbeiten? Ich habe hier zufällig gerade ein Projekt vorliegen wo ebendies zu groben Darstellungsungenauigkeiten führt (was allerdings auch teilweise auf "unelegante" Handhabung zurückzuführen ist...)
"Tja ja, das Ausrufezeichen... Der virtuelle Spoiler des 21. Jahrhunderts, der Breitreifen für die Datenautobahn, die k3wle Sonnenbrille fürs Usenet. " (Henning Richter)
  Mit Zitat antworten Zitat
DelphiManiac

Registriert seit: 5. Dez 2005
742 Beiträge
 
#6

Re: String --> Single Single-->String

  Alt 18. Apr 2007, 10:19
Wie meinst du das mit wegrunden?

Nunja ich habe folgende Stringdarstellung einer Single Zahl:

'1,2345678'

daraus ergibt sich

1,2345677844578 oder so ähnlich
  Mit Zitat antworten Zitat
DelphiManiac

Registriert seit: 5. Dez 2005
742 Beiträge
 
#7

Re: String --> Single Single-->String

  Alt 18. Apr 2007, 10:21
@OldGrumpy:

Ja der Datentyp Single ist hier zwingend erforderlich,
da eine Kommunikation mit einem uController besteht und der auf Single-Basis rechnet.

Deswegen kann ich nicht höher gehen als der uC kann...
  Mit Zitat antworten Zitat
Benutzerbild von OldGrumpy
OldGrumpy

Registriert seit: 28. Sep 2006
Ort: Sandhausen
941 Beiträge
 
Delphi 2006 Professional
 
#8

Re: String --> Single Single-->String

  Alt 18. Apr 2007, 10:24
Da hab ichs ja richtig gut, hier rechnet die Software alles in grosse Integers um die dann an den µC gehen
"Tja ja, das Ausrufezeichen... Der virtuelle Spoiler des 21. Jahrhunderts, der Breitreifen für die Datenautobahn, die k3wle Sonnenbrille fürs Usenet. " (Henning Richter)
  Mit Zitat antworten Zitat
Benutzerbild von TeronG
TeronG

Registriert seit: 19. Jul 2004
Ort: München
960 Beiträge
 
Delphi 2007 Professional
 
#9

Re: String --> Single Single-->String

  Alt 18. Apr 2007, 10:28
Zitat von DelphiManiac:
Nunja ich habe folgende Stringdarstellung einer Single Zahl:

'1,2345678'

daraus ergibt sich

1,2345677844578 oder so ähnlich
Schon komischer ... wenn ich mich mit den Zahlentypen besser auskennen würde währs bestimmt logisch ^^
naja das mit dem Runden hab ich grade getestet und so einfach mit roundto(x,-7) geht's doch nicht
龍 Der Unterschied zwischen Theorie und Praxis ist in der Praxis größer als in der Theorie.
  Mit Zitat antworten Zitat
DelphiKlaus

Registriert seit: 18. Okt 2006
100 Beiträge
 
Delphi 6 Professional
 
#10

Re: String --> Single Single-->String

  Alt 18. Apr 2007, 10:39
Bei einer Konvertierung von String nach Single nach String wird in den seltensten Fällen wieder das Original herauskommen, da Single nur sieben bis acht Stellen speichern kann. Es kann bei reellen Zahlen nur eine sehr beschränkte Teilmenge des Zahlenvorrats abgebildet werden und das führt dann eben zu Rundungsproblemen.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 14:32 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