Visual Studio Math.round

OP #6052813
Lesenswert?

Hallo zusammen,

Ich lese über Bluetooth Daten von meinem Mikrocontroller ein. Unter 
anderem auch Laufzeiten von externen Geräten, die damit betrieben 
werden.

Jetzt schreib ich gerade ein kleines Programm, welches unter anderem die 
Laufzeiten ausgeben soll. Da ich diese in Stunden anzeigen lassen 
möchte, bekomme ich dort nach der Umrechnung von Sekunden in Stunden 
sehr viele Nachkommastellen.

Die Nachkommastellen habe ich nun mit "Math.Round(x,3)" auf 3 begrenzt.

Jetzt zu meiner eigentlichen Frage :

Ich möchte immer genau 3 Nachkommastellen in meinem Label ausgeben.
Sprich wenn x=0,7 ist möchte ich im Label ausgeben 0,700.

Wie mache ich das ?

Vielen Dank

Gruß
Fuchs
Gast #6053411
Lesenswert?

nicht"Gast" schrieb:

> Der kleine Hinweis auf die Programmiersprache fehlt mal wieder
>
>
> falls es C# ist, dann label.Text = $"{x:0.000}";

Besser ist, das unabhängig von der Programmiersprache abzufackeln 
(hinter den Kulissen läuft es ja sowieso darauf hinaus, es wird also 
durch die kryptische Formulierung rein garnix gespart...).

Sprich: die ToString()-Methode mit benutzerdefinertem Formatstring 
verwenden.

Für C# wäre das dan also:

label.Text = x.ToString("0.000");

für VB.net

label.Text = x.ToString("0.000")
Gast #6053800
Lesenswert?

Noch eine kurze Anmerkung zu Math.Round, da ich die Tage da selbst mit 
gekämpft habe:
Standardmäßig wird mathematisch gerundet, d.h aus 2,55 wird 2,5 nicht 
2,6, erst ab 2,56 wird aufgerundet.

Möchte man kaufmännisch gerundet haben, also schon ab 2,55 aufrunden 
musst du in deinem fall Math.Round(x, 3, MidpointRounding.AwayFromZero) 
nutzen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren