Hallo zusammen,
ich habe eine kurze Frage, warum Folgendes nicht den gewünschten Effekt bringt:
Ich habe einen String, aus diesem wird ein Double:
Danach wird dieser Double-Wert mit
Wenn also zufällig der Double-Wert 190,60 ist, wird leider nur 190,6 statt 190,60 angezeigt.
Wenn also zufällig der Double-Wert 190,00 ist, wird leider nur 190 statt 190,00 angezeigt.
Bei 190,61 wird richtigerweise 190,61 angezeigt.
Ohne Verwendung mit Math.Round geschieht dasselbe.
ich habe eine kurze Frage, warum Folgendes nicht den gewünschten Effekt bringt:
Ich habe einen String, aus diesem wird ein Double:
Danach wird dieser Double-Wert mit
Math.Round
und ToString
zu einem String gemacht, und anschließend mit PadRight
bearbeitet. PadRight
soll 2 nachstehende Nullen anzeigen.Wenn also zufällig der Double-Wert 190,60 ist, wird leider nur 190,6 statt 190,60 angezeigt.
Wenn also zufällig der Double-Wert 190,00 ist, wird leider nur 190 statt 190,00 angezeigt.
Bei 190,61 wird richtigerweise 190,61 angezeigt.
Ohne Verwendung mit Math.Round geschieht dasselbe.
VB.NET-Quellcode
- Public Class Form1
- Private ReadOnly Deu As New System.Globalization.CultureInfo("de-DE")
- Private ReadOnly Eng As New System.Globalization.CultureInfo("en-GB")
- Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
- Dim Price As String = "190.60" ' englische Notation. Liegt immer so vor.
- Dim Price_as_Double As Double
- Double.TryParse(Price,
- System.Globalization.NumberStyles.Any,
- Eng,
- Price_as_Double)
- TextBox1.Text = Math.Round(Price_as_Double, 2).ToString(Deu).PadRight(2, "0"c)
- End Sub
- End Class