Mit "." stat "," Rechnen

  • VB.NET

Es gibt 15 Antworten in diesem Thema. Der letzte Beitrag () ist von schnibli.

    Was willst du erreichen?
    Ich verstehe den Sinn der Frage nich ^^
    "Life isn't about winning the race. Life is about finishing the race and how many people we can help finish the race." ~Marc Mero

    Nun bin ich also auch soweit: Keine VB-Fragen per PM! Es gibt hier ein Forum, verdammt!
    Ich habe einen Report, indem habe ich eine Spalte "Menge" und eine Spalte "Preis"

    Nun würde ich gerne Menge * Preis Rechnen, jedoch erkennt mein Programm den "." nicht als Dezimal "Zeichen".

    Ich gehe mal davon aus, wenn ich den "." mit einem "," ersetzte wird es Funktionieren. Jedoch würde ich gerne den "." lassen.
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    ... Nun solltest es selber wissen. :'D
    Falls es daran liegt kannst du einfach eine Kopie anlegen in der du "." mit "," ersetzt.
    Damit kannst du dann rechnen. Ist zwar ranzig wie sonstwas, funktioniert aber ;)
    "Life isn't about winning the race. Life is about finishing the race and how many people we can help finish the race." ~Marc Mero

    Nun bin ich also auch soweit: Keine VB-Fragen per PM! Es gibt hier ein Forum, verdammt!
    Das ist Humbug. Nachher hat er nen Tausender Trenner drin und dann? :D
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    ... Nun solltest es selber wissen. :'D
    Ich weiß ja nicht was du damit machst...
    Beispiel:

    VB.NET-Quellcode

    1. Dim test as Double = Double.Parse("2,34")

    ergibt bei der Variable test den Inhalt 2.34
    Damit kann dein Programm rechnen.
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    ... Nun solltest es selber wissen. :'D
    Vielleicht das : ("C:\Windows\system32\rundll32.exe" Shell32.dll,Control_RunDLL "C:\Windows\system32\intl.cpl",,/p:"date") auführen, dann auf "Weiter Einstellungen..." und dort die deimal trenn zeichen ändern.

    Edit: Villeicht völlig OT ...
    Na aber doch jetzt nicht an den Systemsettings frickeln nur um ne Zahl zu parsen oO

    PS: Deine Überschrift ist falsch. Du hast dort ";" statt "," stehen.
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    ... Nun solltest es selber wissen. :'D
    Zeig doch mal bisl Code damit man hier weiß, was du so tust :D
    In der Regel kann man mitgeben was der Dezimaltrenner sein soll.
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    ... Nun solltest es selber wissen. :'D
    Es gibt nicht viel Code
    Im Form mit dem Berichtsviewer

    VB.NET-Quellcode

    1. BestellberichtBindingSource.Filter = "Bestelnr ='" & Bestellform.IDTextBox.Text & "'"
    2. Me.ReportViewer1.RefreshReport()


    und Die Daten werden Gesendet mit:

    VB.NET-Quellcode

    1. Dim Result = From rw1 In Artikeldatenbank_beDataSet.ausgef_bestellungen
    2. Join rw2 In Artikeldatenbank_beDataSet.Artikeldatenbank On rw1.ArtikelID Equals rw2.ID
    3. Select New With {.ID = rw1.ArtikelID,
    4. .Artikel = rw2.Artikel,
    5. .Nummer = rw2.Artikel_Nummer,
    6. .Preis = rw2.Preis_Rabatt,
    7. .Menge = rw1.Anzahl,
    8. .Bestelnr = rw1.BestellungID,
    9. .waehrung = rw2.Währung,
    10. .einheit = rw2.Verpackungseinheit}
    11. 'deine neue Tabelle befüllen mit Result
    12. Artikeldatenbank_beDataSet.Bestellbericht.Clear() 'ev. vorher noch Daten der Tabelle entfernen...
    13. For Each rw In Result
    14. Artikeldatenbank_beDataSet.Bestellbericht.Rows.Add(rw.ID, rw.Artikel, rw.Nummer, rw.Preis, rw.Menge, rw.Bestelnr, rw.einheit, rw.waehrung)
    15. Next
    16. Dim frm1 = New Bestellen_Bericht
    17. frm1.BestellberichtBindingSource.DataSource = Me.Artikeldatenbank_beDataSet
    18. bestellnummer = "1"
    19. frm1.Show(Me)
    Also... Ich denke du möchtest in dem folgenden Abschnitt eine zusätzliche Spalte angeben...

    VB.NET-Quellcode

    1. For Each rw In Result
    2. Artikeldatenbank_beDataSet.Bestellbericht.Rows.Add(rw.ID, rw.Artikel, rw.Nummer, rw.Preis, rw.Menge, rw.Bestelnr, rw.einheit, rw.waehrung)
    3. Next


    Wäre da nicht einfach:

    VB.NET-Quellcode

    1. For Each rw In Result
    2. Artikeldatenbank_beDataSet.Bestellbericht.Rows.Add(rw.ID, rw.Artikel, rw.Nummer, rw.Preis, rw.Menge, rw.Bestelnr, rw.einheit, rw.waehrung, Double.Parse(rw.Preis) * Double.Parse(rw.Menge))
    3. Next

    die Lösung?

    Wobei ich mich frage, warum im obigen Dataset dann Preis und Menge ein "String" sind?
    Eigentlich müsste das Ausgangs-Dataset schon korrekt befüllt werden, was hier ja offensichtlich nicht der Fall ist.
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    ... Nun solltest es selber wissen. :'D

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „MemoAnMichSelbst“ ()

    schnibli schrieb:

    mit "." stat "," zu rechnen
    Du versuchst doch nicht etwa mit Strings zu rechnen?
    Strings repräsentieren hier einen numerischen Wert, der z.B. ein englisches oder ein deutsches Format haben kann.
    Meinst Du so was:

    VB.NET-Quellcode

    1. Dim value = 123.45678
    2. Dim txt1 = value.ToString(New Globalization.CultureInfo("en-US"))
    3. Dim txt2 = value.ToString(New Globalization.CultureInfo("de-DE"))
    4. MessageBox.Show(txt1 & Environment.NewLine & txt2)
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Hallo

    Dies von MemoAnMichSelbst hat Funktioniert nun habe ich nur noch das Problem das ich Das Total der Spalte Total in eine Textbox kriegen möchte (alle auf einem Report).

    Ich habe es mit "=Sum(ReportItems!Total.Value)" aber dies Funktioniert nicht :s