AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Code-Bibliothek Neuen Beitrag zur Code-Library hinzufügen Delphi Extended To String mit dekadischen Einheiten

Extended To String mit dekadischen Einheiten

Ein Thema von markus5766h · begonnen am 23. Jun 2009 · letzter Beitrag vom 19. Jun 2017
Antwort Antwort
Seite 3 von 3     123
Benutzerbild von markus5766h
markus5766h

Registriert seit: 5. Mär 2009
Ort: Hamburg
569 Beiträge
 
Delphi XE8 Professional
 
#21

AW: Extended To String mit dekadischen Einheiten

  Alt 12. Nov 2016, 20:56
@ CodeX

Du musst die Anzahl der Digits schon hoch setzen, sonst erwischt Du nur die 1000er !
siehe Screenshot
... oder Eliminate verwenden - siehe Screenshot 2
Miniaturansicht angehängter Grafiken
screenshot1.jpg   screenshot2.jpg  
Markus H.
  Mit Zitat antworten Zitat
CodeX

Registriert seit: 30. Okt 2004
471 Beiträge
 
Delphi 12 Athens
 
#22

AW: Extended To String mit dekadischen Einheiten

  Alt 12. Nov 2016, 21:30
Naja, Sinn ist es doch, dass ich einfach eine Zahl übergebe und diese mit einer optimalen Formatierung erhalte, ohne mir Gedanken zu machen, wie viele Stellen die Zahl hat bzw. ohne weitere Parameter anzupassen.
Dein zweiter Screenshot zeigt das Problem doch auch: Warum sind es 1.000 Mega und nicht 1 Giga? Sobald die nächst größere Einheit mit Zahl vor dem Komma erreicht ist, sollte doch auch in diese gewechselt werden.

Das wäre wie gesagt die gewünschte Ausgabe:
Code:

1
10 
100 
1 Kilo    !
10 Kilo
100 Kilo
1 Mega    !
10 Mega
100 Mega
1 Giga    !
Nur Delphi schafft es, einem ein Lächeln zu schenken, wenn man sich beim Schreiben von := vertippt und stattdessen ein :) erscheint.

Geändert von CodeX (12. Nov 2016 um 21:33 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von markus5766h
markus5766h

Registriert seit: 5. Mär 2009
Ort: Hamburg
569 Beiträge
 
Delphi XE8 Professional
 
#23

AW: Extended To String mit dekadischen Einheiten

  Alt 12. Nov 2016, 21:45
was soll den die optimale Formatierung sein ?
Diese ist in jedem Fall erst mal von der Verwendung abhängig,
z.B. beim Messen elektrischer Größen benötige ich bei einer
Bauteilangebe von : Toleranz = ±0,02 % mind. 4 Nachkommastellen,
um dieses Bauteil beurteilen zu können.
Woher soll die Funktion wissen, wie viele Nachkomastellen -
oder Vorkommastellen ich haben möchte ?

o.k. an dem Wechsel zu den 1000er-Stellen muss ich noch mal nachschauen,
die Anzahl der Vor- oder Nachkommastellen soll jedenfalls weiterhin mit
übergeben werden.
Markus H.
  Mit Zitat antworten Zitat
CodeX

Registriert seit: 30. Okt 2004
471 Beiträge
 
Delphi 12 Athens
 
#24

AW: Extended To String mit dekadischen Einheiten

  Alt 12. Nov 2016, 21:54
die Anzahl der Vor- oder Nachkommastellen soll jedenfalls weiterhin mit übergeben werden.
Nichts anderes versuche ich zu erfragen bzw. zu empfehlen. So wie ich die Funktion verstanden habe, sollte per FloatToStrS(Zahl, True, True, '', 3, 0) eine Formatierung herauskommen, die ab 4 Vorkommastellen in die nächste Einheit wechselt und keine Nachkommastellen hat. Stattdessen kommt sowas wie "1E3 Mega" raus. Das halte ich für falsch. Da sollte in dem Fall "1 Giga" stehen.

Nochmal: Statt "1E3 Mega" oder "1000 Mega" sollte "1 Giga" herauskommen. Gleiches natürlich für die anderen Einheiten.
Nur Delphi schafft es, einem ein Lächeln zu schenken, wenn man sich beim Schreiben von := vertippt und stattdessen ein :) erscheint.
  Mit Zitat antworten Zitat
Benutzerbild von markus5766h
markus5766h

Registriert seit: 5. Mär 2009
Ort: Hamburg
569 Beiträge
 
Delphi XE8 Professional
 
#25

AW: Extended To String mit dekadischen Einheiten

  Alt 12. Nov 2016, 22:14
@ CodeX

... so sollte es gehen, ist bestimmt noch verbesserbar, liefert aber erstmal das gewünschte Ergebnis.

Post # 5 aktualisiert
Miniaturansicht angehängter Grafiken
screenshot3.jpg  
Markus H.
  Mit Zitat antworten Zitat
CodeX

Registriert seit: 30. Okt 2004
471 Beiträge
 
Delphi 12 Athens
 
#26

AW: Extended To String mit dekadischen Einheiten

  Alt 13. Nov 2016, 00:13
Jetzt passt es, danke!
Nur Delphi schafft es, einem ein Lächeln zu schenken, wenn man sich beim Schreiben von := vertippt und stattdessen ein :) erscheint.
  Mit Zitat antworten Zitat
CodeX

Registriert seit: 30. Okt 2004
471 Beiträge
 
Delphi 12 Athens
 
#27

AW: Extended To String mit dekadischen Einheiten

  Alt 8. Jun 2017, 12:06
Ich möchte ja nicht wieder "meckern", aber es funktioniert wohl doch noch nicht richtig. Bei runden Zahlen klappt das (wie in Deinem Screenshot zu sehen), aber ab 102 kommt nur Quatsch:
Delphi-Quellcode:
  for i := 0 to 2000 do
    Memo1.Lines.Add(IntToStr(i) +': '+ FloatToStrS(i, True, True, '', 3, 0));
Code:
99: 99
100: 100
101: 101
102: 0 K
103: 0 K
...
498: 0 K
499: 0 K
500: 1 K
501: 1 K
...
1498: 1 K
1499: 1 K
1500: 2 K
1501: 2 K
Nur Delphi schafft es, einem ein Lächeln zu schenken, wenn man sich beim Schreiben von := vertippt und stattdessen ein :) erscheint.
  Mit Zitat antworten Zitat
CodeX

Registriert seit: 30. Okt 2004
471 Beiträge
 
Delphi 12 Athens
 
#28

AW: Extended To String mit dekadischen Einheiten

  Alt 17. Jun 2017, 13:47
Keine Idee?
Nur Delphi schafft es, einem ein Lächeln zu schenken, wenn man sich beim Schreiben von := vertippt und stattdessen ein :) erscheint.
  Mit Zitat antworten Zitat
Benutzerbild von markus5766h
markus5766h

Registriert seit: 5. Mär 2009
Ort: Hamburg
569 Beiträge
 
Delphi XE8 Professional
 
#29

AW: Extended To String mit dekadischen Einheiten

  Alt 19. Jun 2017, 18:54
Keine Idee?
doch . . . setz mal die Digit's auf 3,
dann bekommst Du bei einem Ausgangswert von 498 ----> 0,498 K.
Wenn dagegen die Anzahl der Nachkommastellen auf 0 steht, kann da nichts Vernünftiges bei 'raus kommen.
Markus H.

Geändert von markus5766h (19. Jun 2017 um 19:07 Uhr)
  Mit Zitat antworten Zitat
CodeX

Registriert seit: 30. Okt 2004
471 Beiträge
 
Delphi 12 Athens
 
#30

AW: Extended To String mit dekadischen Einheiten

  Alt 19. Jun 2017, 21:47
Wenn dagegen die Anzahl der Nachkommastellen auf 0 steht, kann da nichts Vernünftiges bei 'raus kommen.
Warum denn nicht? Das ist doch genau meine Absicht, damit nur Ganzzahlen zu erhalten. Ich möchte ja eben keine Nachkommastellen haben.
Du willst doch nicht sagen, dass es so gewollt ist:
101 -> 101
102 -> 0 K

Was macht es für einen Sinn, dass 102-499 in 0 K umgewandelt werden, und 500-999 in 1 K? Es sind nur 3 Stellen, daher brauchen sie ja nicht in die nächsthöhere Einheit umgewandelt werden. Erst bei 1000 - 1999 müsste es 1 K sein (bei 0 Nachkommastellen).
Nur Delphi schafft es, einem ein Lächeln zu schenken, wenn man sich beim Schreiben von := vertippt und stattdessen ein :) erscheint.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 08:44 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