AGB  ·  Datenschutz  ·  Impressum  







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

Zahlenformate

Ein Thema von NEPH1L1M · begonnen am 5. Apr 2008 · letzter Beitrag vom 7. Apr 2008
Antwort Antwort
NEPH1L1M

Registriert seit: 24. Mär 2008
Ort: Stuttgart
25 Beiträge
 
#1

Zahlenformate

  Alt 5. Apr 2008, 00:59
Hallo,

ich habe eigentlich eine banale Frage, aber trotz intensiver Suche habe ich hier noch nicht die passende Antwort gefunden.

Also von TurboPascal kenne ich noch den Befehl "write(Zahl:3:2)", um z.B. eine REAL-Variable mit 2 Stellen hinter dem Komma auszugeben. Wie mache ich das in Delphi ? Z.B. von einer Variable SINGLE ?

Delphi-Quellcode:
L,B,A1: integer; A2:single
A1:=l*b;
A2:=A1/100;
Flaeche.text:= IntToStr(A1);
Flaeche_cm.text:= FloatToStr(A2)
Danke für eine Antwort!
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Zahlenformate

  Alt 5. Apr 2008, 01:08
Moin Nephilim,

schau Dir dazu in der Hilfe mal Delphi-Referenz durchsuchenFormat und die zugehörigen Delphi-Referenz durchsuchenFormat-Strings an, oder aber auch Delphi-Referenz durchsuchenFormatFloat
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
NEPH1L1M

Registriert seit: 24. Mär 2008
Ort: Stuttgart
25 Beiträge
 
#3

Re: Zahlenformate

  Alt 5. Apr 2008, 19:10
Hallo Christian,

meinst du das hier:

Format Strings

A format string is an interpreted token that the NDR engine understands. Format strings are often referred to as MOPs; this documentation uses the term format string throughout.

To be more precise, a format character is an individual (atomic) interpretable token. Each format character is one byte in size. A format string is a sequence of format characters or format characters and numerical data. The term descriptor is also used for naming common sequences; for example, a parameter format string or a parameter descriptor is a format string used to describe a parameter of a routine.

Format characters have suggestive symbolic names like FC_LONG or FC_STRUCT. All format string characters used by MIDL and the NDR engine are defined in the Ndrtypes.h file.


Format String Tables

Two primary format string tables are used by the engine: the procedure format string table, __MIDL_ProcFormatString, that keeps the procedure descriptors; and the type format string table, __MIDL_TypeFormatString, that keeps the data type descriptors. The compiler generates both into the main stub files (*_c.c, *_s.c, *_p.c). The procedure format string table is used mostly by various interpreters but it is also used for the buffer conversion regardless of the compiler mode. The type format string table is used when calling the core NDR engine to indicate specific data types to be worked on.


Format String Notation

The notation used in this document follows common programming description guidelines, with a bar ( | ) used to denote alternative constructs and square brackets ( [ ] ) used to indicate optional elements. Format strings are frequently stacked up for readability (accountability). Throughout this document, FC denotes a single format character. Format characters are presented in all CAPS, using their actual symbolic names. Other arbitrary fields are represented by a name and a size.

Angle brackets ( <> ) are used to denote sizes of the descriptors. The conventions shown in the following table are employed.




Zeigt mir - sorry - jetzt nicht wie ich es machen muss ?!

Warum ist das bei DELPHI so kompliziert geworden

Gruss NEPHI
  Mit Zitat antworten Zitat
Benutzerbild von Dani
Dani

Registriert seit: 19. Jan 2003
732 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Zahlenformate

  Alt 5. Apr 2008, 21:51
Zitat von Christian Seehase:
ist ganz einfach zu benutzen:
FormatFloat('0.0#', -17.37777777777) = '-17,38'
Dani H.
At Least I Can Say I Tried
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Zahlenformate

  Alt 5. Apr 2008, 23:25
So ähnlich geht es mit Delphi auch noch, und zwar mit dem Str-Befehl, glaube ich. Format ist halt praktisch die neuere Variante. Mächtiger. Besser. Und auch nicht wirklich schwer zu verstehen.
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
NEPH1L1M

Registriert seit: 24. Mär 2008
Ort: Stuttgart
25 Beiträge
 
#6

Re: Zahlenformate

  Alt 6. Apr 2008, 18:50
FormatFloat('0.0#', -17.37777777777) = '-17,38' D.h. ich muss das Ergebnis kennen - in deinem Bsp. -17.3777 - und dann umwandeln?
Nein oder?
Für -17,37777 muss ich dann wohl die Variablen-Bezeichnung eintragen ?

Für was steht das '0.0#' ?

Gruss Nephi
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#7

Re: Zahlenformate

  Alt 6. Apr 2008, 18:55
Zitat von NEPH1L1M:
Für was steht das '0.0#' ?
Sollte in der Hilfe erklärt sein.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
NEPH1L1M

Registriert seit: 24. Mär 2008
Ort: Stuttgart
25 Beiträge
 
#8

Re: Zahlenformate

  Alt 7. Apr 2008, 18:14
Ich frag doch hier - die Hilfe kann man überwiegend vergessen!
  Mit Zitat antworten Zitat
Thorben_Ko

Registriert seit: 8. Jun 2007
86 Beiträge
 
#9

Re: Zahlenformate

  Alt 7. Apr 2008, 19:10
Zitat:
FormatFloat formatiert den mit Value angegebenen Gleitkommawert. Dazu wird der im Parameter Format übergebene Format-String verwendet. Die folgende Tabelle enthält die unterstützen Formatbezeichner:

Bezeichner Beschreibung

0 Platzhalter für eine Ziffer. Enthält der zu formatierende Wert an der Position eine Ziffer, an der im Format-String '0' steht, wird diese in den Ausgabe-String kopiert. Andernfalls wird das Zeichen '0' an dieser Position im Ausgabe-String gespeichert.
# Platzhalter für eine Ziffer. Enthält der zu formatierende Wert an der Position eine Ziffer, an der im Format-String '#' steht, wird diese in den Ausgabe-String kopiert. Andernfalls wird an dieser Position kein Zeichen im Ausgabe-String gespeichert.

. Dezimaltrennzeichen. Das erste '.'-Zeichen im Format-String bestimmt die Position des Dezimaltrennzeichens im formatierten Wert. Alle weiteren dieser Zeichen werden ignoriert. Das tatsächlich im Ausgabe-String verwendete Zeichen wird mit der globalen Variable DecimalSeparator festgelegt. Die Variable erhält als Standardwert den entsprechenden Eintrag in der Registerkarte Zahlen im Modul Ländereinstellungen der Windows-Systemsteuerung.
, Tausendertrennzeichen. Enthält der Format-String ein oder mehrere ','-Zeichen, werden in den Ausgabe-String links des Dezimaltrennzeichens nach jeder Gruppe von drei Ziffern Tausendertrennzeichen eingefügt. Die Position und Anzahl der Trennzeichen im Format-String wirkt sich nicht auf die Ausgabe aus. Sie geben nur an, daß Trennzeichen eingefügt werden sollen. Das tatsächlich im Ausgabe-String verwendete Zeichen wird mit der globalen Variable ThousandSeparator festgelegt. Die Variable erhält als Standardwert den entsprechenden Eintrag in der Registerkarte Zahlen des Moduls Ländereinstellungen der Windows-Systemsteuerung.

E+ Wissenschaftliche Schreibweise. Sind die Zeichen 'E+', 'E-', 'e+' oder 'e-' im Format-String enthalten, wird die Zahl in der wissenschaftlichen Schreibweise formatiert. Bis zu vier '0'-Zeichen können direkt nach 'E+', 'E-', 'e+' oder 'e-' angegeben werden, um die minimale Anzahl der Stellen im Exponenten festzulegen. Bei den Formaten 'E+' und 'e+' wird für positive Exponenten ein Pluszeichen und für negative Exponenten ein Minuszeichen in den String eingefügt. Bei den Formaten 'E-' und 'e-' wird lediglich für negative Exponenten ein Vorzeichen ausgegeben.

'xx'/"xx" In halbe oder ganze Anführungszeichen eingeschlossene Zeichen wirken sich nicht auf die Formatierung aus und werden wie eingegeben angezeigt.
; Trennt Abschnitte für positive, negative und Nullwerte im Format-String.
Ich find das sehr hilfreich... weiss net wo dein prob ist..
  Mit Zitat antworten Zitat
NEPH1L1M

Registriert seit: 24. Mär 2008
Ort: Stuttgart
25 Beiträge
 
#10

Re: Zahlenformate

  Alt 7. Apr 2008, 20:09
Danke für die copy

Aber am Anfang der Hilfe steht das:

Formatiert einen Gleitkommawert.

Namespace
Borland.Vcl.SysUtils

Syntax

[Delphi] function FormatFloat(const Format: string, Value: Extended): string;
[Delphi] function FormatFloat(const Format: string, Value: Extended, const FormatSettings: TFormatSettings): string;
[Delphi] function FormatFloat(const Format: string, Value: Extended, Provider: IFormatProvider): string;

Und ehrlich gesagt habe ich da, die Formatierung, wie oben nicht erkennen können.

Ich habe es inzwischen so gelöst :

[pre][pre][/pre]A1:=l*b; //Fläche in mm²
A2:=A1/100;
gewicht:=kg*A2;
Flaeche.text:= IntToStr(A1);
Flaeche_cm.text:= FloatToStr(A2);
Flaeche_cm.text := FloatToStrF(StrToFloat(Flaeche_cm.text),ffNumber,5 ,2)[delphi]

Mal eine andere Frage:
Kann ich das Buch "Borland Delphi 7 - Grundlagen, Profiwissen, Kochbuch. Das umfassende Handbuch für die Win32-Anwendungsentwicklung" auch für DELPHI 2005 was ich
habe kaufen? Ich suche immer noch ein g´scheites Buch mit Grundlagen von DELPHI 2005 (komme direkt aus der TurboPascal 6-Welt).

Danke für eine Info und danke für die Tipps!
  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:52 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