vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Top-Preis! AP-Access-Tools-CD Volume 1  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Re: Betrag in Euro / Cent teilen 
Autor: Manfred X
Datum: 17.04.15 06:20

Die Durchführung von Währungs-Berechnungen ist wirklich sehr diffizil.
Ich verweise in diesem Beitrag nur auf einige der Gesichtspunkte,
die in diesem Zusammenhang relevant sind.


1. Die Wahl des geeigneten Datentyps für Währungsberechnungen

Für die Berechnung mit großen Geld-Beträgen oder für Währungsumrechnungen ist der
normierte IEEE-Datentyp Double wegen der begrenzten Genauigkeit (ca. 15 Stellen)
nur bedingt geeignet.

Empfohlen wird häufig die Verwendung des Datentyps Decimal, der eine höhere Genauigkeit bietet.
Allerdings arbeitet dieser Datentyp relativ langsam und beherrscht nur die Grundrechenarten.
Einen Currency-Datentyp gibt es im Net-Framework nicht.

Die von VB6 übernommene Klasse für die Durchführung von Währungsberechnungen operiert mit Double-Werten.


2. Die Berücksichtigung der Kultureinstellungen beim Parsen von Geldbeträgen

Für die Umwandlung eines Geldbetrags, der durch einen numerischen Datentyp gegeben ist,
stehen Standardformat-Bezeichner zur Verfügung.
Es sind aber auch Formatierungen numerischer Werte durch den Benutzer möglich.

Kulturspezifische Informationen für die Formatierung und die Analyse von numerischen Werten,
stellt dabei die Klasse NumberformatInfo bereit.

Es empfiehlt sich, auch bei der Gliederung von Geldbeträgen in untergeordnete Währungseinheiten,
diese Einstellungen zu beachten.

Die Zahl der zu beachtenden Nachkommastellen ist dabei durch die Eigenschaft CurrencyDecimalDigits festgelegt.
Da 100 Euro-Cent genau einem Euro entsprechen, kann in Deinem Fall der Standardwert dieser
Eigenschaft (2) herangezogen werden.

Das Zeichen (bzw. die Zeichenfolge), das in der Zeichenfolge für die Trennung zwischen dem
Euro-Anteil (vor dem Dezimal-Komma) und Euro-Cent-Anteil (nach dem Dezimal-Komma) zu verwenden ist,
wird durch die Eigenschaft CurrencyDecimalSeparator festgelegt.

Die Position des Vorzeichens bei einem Währungsbetrag ergibt sich aus dem CurrencyPattern-Code.
Bei der Spaltung eines Betrags in zwei Teile ist diese Eigenschaft aber nicht direkt nutzbar.


3. Die Behandlung von negativen Geld-Beträgen

Die gegliederte Darstellung eines Betrages sollte ggf. das Vorzeichen separat behandeln,
da es sich auf beide Angaben (Euro und Euro-Cent) bezieht.


4. Ein kleines Code-Beispiel

Private Sub GetEuroAndCent(ByVal vl As Decimal, _
                           ByRef Sign As String, _
                           ByRef Euro As String, ByRef EuroCent As String)
 
        Dim ci As Globalization.CultureInfo = _
                         Globalization.CultureInfo.CurrentCulture
        Dim nf As Globalization.NumberFormatInfo = ci.NumberFormat
 
        Dim vz As Integer = Math.Sign(vl)
        vl = Math.Abs(vl)
        Dim str As String = vl.ToString("C2", ci)
        Dim parts() As String = str.Split(CChar(nf.CurrencyDecimalSeparator))
 
        Sign = nf.NegativeSign
        If vz >= 0 Then Sign = nf.PositiveSign
        Euro = parts(0)
        EuroCent = parts(1).Trim(CChar(nf.CurrencySymbol), " "c)
End Sub
5. Ergänzendes

Die FormatCurrency-Methode greift auf die lokalen Windows-Kultureinstellungen zurück
und erlaubt die Parameter-gesteuerte Umwandlung eines Ausdrucks, der einen numerischen Wert ergibt,
in eine Währungsangabe (Zeichenfolge).

Beitrag wurde zuletzt am 17.04.15 um 06:32:23 editiert.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Betrag in Euro / Cent teilen2.256Theo_kkv16.04.15 19:58
Re: Betrag in Euro / Cent teilen1.407ModeratorDaveS16.04.15 20:00
Re: Betrag in Euro / Cent teilen1.405Theo_kkv16.04.15 20:12
Re: Betrag in Euro / Cent teilen1.385ModeratorDaveS16.04.15 21:07
Re: Betrag in Euro / Cent teilen1.597Manfred X17.04.15 06:20
Re: Betrag in Euro / Cent teilen1.393effeff17.04.15 17:33
Re: Betrag in Euro / Cent teilen1.468Manfred X17.04.15 17:45
Re: Betrag in Euro / Cent teilen1.382Theo_kkv17.04.15 19:26
Re: Betrag in Euro / Cent teilen1.384Manfred X17.04.15 19:48
Re: Betrag in Euro / Cent teilen1.361Theo_kkv17.04.15 20:15

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel