Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Zentimeter als Meter ausgeben -> Wie? (https://www.delphipraxis.net/178114-zentimeter-als-meter-ausgeben-wie.html)

torud 18. Dez 2013 10:29

Delphi-Version: 7

Zentimeter als Meter ausgeben -> Wie?
 
Hallo Wissende,

es ist mir unendlich peinlich, aber ich struggle total damit vorhandene Zentimeter 183 als 1.83 darzustellen. Ich dachte, daß ich das ganz einfach mit dem Formatbefehl tun könnte, aber ich kriegs einfach nicht hin. Kann mir jemand bitte kurz unter die Arme greifen?

DeddyH 18. Dez 2013 10:30

AW: Zentimeter als Meter ausgeben -> Wie?
 
Delphi-Quellcode:
Format('%.2f', [cm / 100])

baumina 18. Dez 2013 10:47

AW: Zentimeter als Meter ausgeben -> Wie?
 
Falls Du unbedingt den DezimalPUNKT statt dem DezimalKOMMA möchtest, wäre das dann so:

Delphi-Quellcode:
var
  FormatSettings: TFormatSettings;
  cm : Real;

begin
 cm := 183;
 GetLocaleFormatSettings(LOCALE_USER_DEFAULT,FormatSettings);

 FormatSettings.DecimalSeparator := '.';
 Showmessage(Format('%.2f', [cm / 100], FormatSettings));
end;
EDIT: Ich weiß nicht seit wann es die überladene Funktion mit den FormatSettings gab. Gibt es die noch nicht, dann nimmt man die globale Variable DecimalSeparator.

torud 18. Dez 2013 10:51

AW: Zentimeter als Meter ausgeben -> Wie?
 
Perfekt

Der schöne Günther 18. Dez 2013 10:55

AW: Zentimeter als Meter ausgeben -> Wie?
 
Ich kann nicht riechen, wie der Namensraum in Delphi 7 dafür ist, aber der Kram ist
Delphi-Quellcode:
System.ConvUtils
scheint extra dafür gemacht worden zu sein:

System.ConvUtils.Convert

Artikel: Maßeinheiten umrechnen

Headbucket 18. Dez 2013 10:57

AW: Zentimeter als Meter ausgeben -> Wie?
 
Zitat:

Zitat von baumina (Beitrag 1240214)
EDIT: Ich weiß nicht seit wann es die überladene Funktion mit den FormatSettings gab. Gibt es die noch nicht, dann nimmt man die globale Variable DecimalSeparator.

Im Delphi 2007 gab es sie jedenfalls noch nicht. Hier muss man die globale Variable verwenden.
Dann wurden eine Zeit lang beide Varianten parallel geführt (mit der Erweiterung "deprecated").
In meinem Delphi XE5 gibt es die globale Variable nun gar nicht mehr.

Grüße

Der schöne Günther 18. Dez 2013 11:02

AW: Zentimeter als Meter ausgeben -> Wie?
 
Doch, die steckt in
Delphi-Quellcode:
System.SysUtils
.

DeddyH 18. Dez 2013 11:03

AW: Zentimeter als Meter ausgeben -> Wie?
 
Man kann aber auch komplett ganzzahlig rechnen, wenn man das möchte:
Delphi-Quellcode:
procedure TFormTest.ButtonCMClick(Sender: TObject);
const
  CM = 183;
  CM_PER_METER = 100;
begin
  ShowMessage(Format('%d.%d', [CM div CM_PER_METER, CM mod CM_PER_METER]));
end;

himitsu 18. Dez 2013 11:57

AW: Zentimeter als Meter ausgeben -> Wie?
 
Nicht die führende 0 vergessen :zwinker:
101 = 1.1
110 = 1.10

Delphi-Quellcode:
ShowMessage(Format('%d.%.2d', [CM div CM_PER_METER, CM mod CM_PER_METER]));

DeddyH 18. Dez 2013 12:14

AW: Zentimeter als Meter ausgeben -> Wie?
 
Japp, übersehen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:29 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