mikrocontroller.net

Forum: PC Hard- und Software Visual Studio Math.round


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von M. F. (fuchs1991)


Bewertung
0 lesenswert
nicht 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

von nicht"Gast" (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Der kleine Hinweis auf die Programmiersprache fehlt mal wieder


falls es C# ist, dann label.Text = $"{x:0.000}";


Grüße

von M. F. (fuchs1991)


Bewertung
0 lesenswert
nicht lesenswert
Danke, es ist C# :)

von c-hater (Gast)


Bewertung
0 lesenswert
nicht 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")

von Tek (Gast)


Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.