Multiplikation von Zahlen als String mit Komma

  • VB.NET

Es gibt 10 Antworten in diesem Thema. Der letzte Beitrag () ist von IzyTower.

    Multiplikation von Zahlen als String mit Komma

    Hallo,
    Ich lade aus einer externen Datenbank Zahlen in mein Programm, die in Strings so formatiert sind (bspw. mit 1 Million): 1,000,000

    Da ich aber Prozente damit rechnen möchte, also z.B. 105% von 80,000, kommt da nur 88 bei raus statt 88000.

    Wie kann ich das mit möglichst wenig Aufwand realisieren dass da 88,000 bei raus kommen und nicht 88000 oder 88?

    Danke im Voraus!
    Sind in der Datenbank wirklich STRINGS? Oder sind es Zahlen die nur im Programm als String dargestellt werden?
    Ein Datenbankschema wäre hier hilfreich.
    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
    Hm, also stehen dort wirklich "Strings".
    Da wir hier im deutschen Raum sind wird er wohl das "," als Dezimaltrenner erkennen.
    Wie berechnest du denn aktuell?
    Du könntest beim Einlesen direkt das Format Berücksichtigen. Das wäre denke ich am einfachsten, da du dann an der Wurzel korrigierst, als im Nachhinein an der Formel.
    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
    Da ich deinen Code nicht kenne, kann ich dazu nicht viel sagen.
    In VB.Net gibt es Formatierungs-Möglichkeiten.
    Die Hilfe dazu im Visual Studio ist auch sehr gut inklusive Beispiele.
    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

    VB.NET-Quellcode

    1. Imports System.Globalization
    2. Dim sVal As String = "1,234,567"
    3. Dim dVal As Double = 0
    4. Dim style As NumberStyles
    5. Dim culture As CultureInfo
    6. style = NumberStyles.Number Or NumberStyles.AllowCurrencySymbol
    7. culture = CultureInfo.CreateSpecificCulture("en-US")
    8. Double.TryParse(sVal, style, culture, dVal)
    9. MessageBox.Show(dVal.ToString)
    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

    MemoAnMichSelbst schrieb:

    NumberStyles
    besser:

    VB.NET-Quellcode

    1. style = NumberStyles.Number Or NumberStyles.AllowCurrencySymbol Or NumberStyles.AllowThousands
    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!