AGB  ·  Datenschutz  ·  Impressum  







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

Single und FloatToStr

Ein Thema von DelphiManiac · begonnen am 12. Aug 2009 · letzter Beitrag vom 12. Aug 2009
Antwort Antwort
DelphiManiac

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

Single und FloatToStr

  Alt 12. Aug 2009, 14:56
Hallo,

ich habe einen Single (IEE754 einfache Genauigkeit) Fließkommawert den ich anzeigen will.

Jetzt kann die Funktion FloatToStr ja einen Extended aufnehmen und akzeptiert auch Double / Single Werte.

Mein Problem ist aber dass wenn ich einen Wert beispielweise:

22.1 (Single)
habe dieser über FloatToStr zu 22.10000000381469727 wird (Doppelte Genauigkeit)

Gibt es eine Convertfunktion die mir nur den Singlewert betrachtet? Oder muss ich dann wieder runden?!

Vielen Dank

Gruß
DelphiManiac
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.771 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Single und FloatToStr

  Alt 12. Aug 2009, 15:01
Hallo,

kannst Du nicht FlaotToStrF nutzen:

Zitat:
FloatToStrF converts the floating-point value given by Value to its string representation.
The Value parameter is the value to convert.
The Precision parameter specifies the precision of the given value.
It should be 7 or less for values of type Single, 15 or less for values of type Double, and 18 or less for values of type Extended.
Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
DelphiManiac

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

Re: Single und FloatToStr

  Alt 12. Aug 2009, 15:02
Hi,

doch das könnte ich tun,
meine Frage jetzt noch Precision ist ja 7, das ist ok, aber was soll ich für ein Zahlenformat nehmen und wie viele Nachkommastellen, denn das weiß ich ja vorher nicht?!

Danke
  Mit Zitat antworten Zitat
Zoot

Registriert seit: 30. Jan 2006
Ort: Hessen
113 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Single und FloatToStr

  Alt 12. Aug 2009, 15:10
Wie viele Stellen willst du denn sehen?
FormatFloat ('0.00',x) oder so ähnlich.
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.771 Beiträge
 
Delphi 10.4 Sydney
 
#5

Re: Single und FloatToStr

  Alt 12. Aug 2009, 15:12
Du könntest es mal mit ffFixed probieren.

Zitat von DelphiHilfe:
ffFixed:
Fixed point format. The value is converted to a string of the form "-ddd.ddd...". The resulting string starts with a minus sign if the number is negative, and at least one digit always precedes the decimal point. The number of digits after the decimal point is given by the Digits parameter--it must be between 0 and 18. If the number of digits to the left of the decimal point is greater than the specified precision, the resulting value will use scientific format. The resulting values is padded with zeros when the Digits parameter is higher than the number of digits dictated by precision. For example, given ffFixed with Precision set to 5 and digits set to 3, fomatting 345.6789 gives the string '345.680', padding with zeros after the precision is met.
Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Benutzerbild von TeronG
TeronG

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

Re: Single und FloatToStr

  Alt 12. Aug 2009, 15:20
Zitat von DelphiHilfe:
ffFixed:
Festkommaformat. Der Wert wird in einen String der folgenden Form umgewandelt: "-ddd.ddd...". Der resultierende String beginnt mit einem Minuszeichen, wenn es sich um eine negative Zahl handelt. Vor dem Dezimaltrennzeichen steht immer mindestens eine Ziffer. Die Anzahl der Stellen nach dem Dezimalkomma wird über den Parameter Digits angegeben. Es muss sich dabei um eine Zahl zwischen 0 und 18 handeln. Ist die Anzahl der Stellen links vom Dezimalkomma größer als die angegebene Genauigkeit, wird für den resultierenden Wert das wissenschaftliche Format verwendet. Die resultierenden Werte werden mit Nullen aufgefüllt, wenn der Parameter Digits größer ist als die Anzahl der durch Precision angegebenen Stellen. Wenn beispielsweise ffFixed mit dem Wert 5 für Genauigkeit (Precision) und 3 Stellen angegeben wird, dann ergibt die Formatierung von 345.6789 den String '345.680', der mit Nullen aufgefüllt wird, nachdem die geforderte Genauigkeit erreicht wurde.
btw: (7 Signifikante Stellen) ungleich (7 Nachkommastellen)
龍 Der Unterschied zwischen Theorie und Praxis ist in der Praxis größer als in der Theorie.
  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 16:25 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