Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst C Sharp - Runden

Mitglied: Cubic83

Cubic83 (Level 2) - Jetzt verbinden

21.07.2018 um 10:18 Uhr, 1884 Aufrufe, 5 Kommentare

Guten Morgen,

ich habe ein Problem unter C# bei dem ich den Preis eines Artikels ohne Mehrwertsteuer berechnen muss. Ich habe schon gegoogelt und heraus gefunden daß es kaufmännisches Runden und Mathematisches Runden gibt. In den diversen Foren wird dies auch mit Math.Round(MidpointRounding.AwayFromZero) gelöst. In diesen Foren sind dann auch alle froh daß es klappt, nur bei mir geht es nicht ;)


Beispiel:

Preis mit Mehrwertsteuer ist 50 €. Der Mehrwertsteuersatz ist 3%.

50 / 1,03 = 48,54368932038835;
48,54 * 1,03 = 49,9962;

Aus der 48,54 müsste 48,55 werden.

Ich habe jetzt ein Testprogramm erstellt um es mal durch zu testen.

Resultat:

math - Klicke auf das Bild, um es zu vergrößern

Kann mir einer weiterhelfen?

Umgebung: Visual Studio 2017 / .NET Framwork 4.7


Vielen Dank
Mitglied: emeriks
LÖSUNG 21.07.2018 um 11:47 Uhr
Hi,
habe keine Ahnung von Kaufmannsladen. Aber wenn ich einfach mal Deinen Gedanken folge, dann hätte ich hier einen pragmatischen Ansatz. Etwas bekloppt, aber es sollte funktionieren.

Ich bleibe beim Beispiel:
(Pseudo Code)
Habe jetzt keine Lust, daraus eine Funktion zu schreiben. Auch ob das 0,001 bei allen Werten ausreichend sein wird. Keine Ahnung. Teste es, wenn Du Lust dazu hast. Viel Spaß!

E.
Bitte warten ..
Mitglied: Kraemer
LÖSUNG 21.07.2018 um 12:18 Uhr
Moin,
Zitat von Cubic83:
Beispiel:

Preis mit Mehrwertsteuer ist 50 €. Der Mehrwertsteuersatz ist 3%.

50 / 1,03 = 48,54368932038835;
48,54 * 1,03 = 49,9962;

Aus der 48,54 müsste 48,55 werden.
falsch! Bei beiden von dir genannten Rundungsverfahren ist 48,54 richtig.
Das was du brauchst ist ein Summenerhaltendes Runden - das ist nicht mal eben mit einer Formel erledigt. Siehe https://de.wikipedia.org/wiki/Rundung#Summenerhaltendes_Runden

Gruß
Bitte warten ..
Mitglied: Cubic83
21.07.2018 um 14:08 Uhr
Hallo,

habe mich bis jetzt mit Emeriks Version beschäftigt. Ich habe deinen Link jetzt kurz überflogen, und auf den ersten Blick scheint sein Ansatz ja gar nicht mal so abwegig zu sein. Ich muss jetzt leider weg und les mich heute Abend mal weiter ein.

Habe den Begriff vom Summenerhaltendes Runden bislang nie gehört.


Vielen Dank euch beiden schon mal. Habe jetzt wenigstens einen Anhaltspunkt.
Bitte warten ..
Mitglied: marinux
LÖSUNG 22.07.2018 um 08:27 Uhr
Hi,

Benutze einem mit 100 multiplizierten Input für Math.Ceiling, den du dann anschließend wieder mit 100 dividierst. Siehe z.B. https://social.msdn.microsoft.com/Forums/de-DE/585506c9-f9c8-4c0e-b16f-e ...

Gruß
Bitte warten ..
Mitglied: Cubic83
22.07.2018, aktualisiert um 12:00 Uhr
Hallo,

das habe ich jetzt auch gemacht. Allerdings mit Math.Truncate(*100) / 100.

Ich habe mich bis jetzt eingelesen und dank Kraemers Hinweis heraus gefunden daß dieses Thema quasi eine Wissenschaft für sich ist. Genau genommen kann man das so nicht richtig lösen. Es gibt einige Werte für die sich kein OhneMehrwertsteuerbetrag (Nettobetrag) rechnen lässt ohne daß man am diesem Wert rum spielt.


Grundsätzlich ist die richtige Vorgehensweise daß man in einer Datenbank den Nettobetrag und den Mehrwertsteuersatz speichert, dann zusammenrechnet und zum Schluss die kaufmänische Rundung durchführt. Mach ich im Grunde auch so, aber wegen eines speziellen Formulars musste ich jetzt den umgedrehten Fall lösen.


Konkret habe ich das Problem jetzt folgendermaßen gelöst:


Um vom Brutto zum Netto zu gelangen:



Danach zum Anzeigen:


Vielen Dank
Bitte warten ..
Ähnliche Inhalte
C und C++
C sharp basics
Frage von OarmschC und C++1 Kommentar

servus. folgendes Problem kann im Visual Studio mit float keine Gleitkommazahlen darstellen. Erste Dezimalstelle rechts vom punkt wird sofort ...

C und C++
C-sharp Form buggt
gelöst Frage von YanmaiC und C++2 Kommentare

Hallo ihr Administratoren. Ich habe ein kleines Problem. Unszwar möchte ich eine Ordner von C# zu einem PHP Script ...

C und C++
C-sharp SearchPattern (Regex)
Frage von YanmaiC und C++6 Kommentare

Hallo ihr Administratoren, ich verwende ein AUtocpmpletemenu Plugin. Dort habe ich Snippets, die dann sozusagen completed werden. Beim erstellen ...

C und C++

C-Sharp RegistryKey.OpenBaseKey() Redirection

gelöst Frage von mayho33C und C++6 Kommentare

Hallo @ Community, ich versuche gerade ein Verständnis-Problem im Zusammenhang mit dem Auslesen von RegistryKeys unter HKCU zu lösen ...

Neue Wissensbeiträge
E-Books

Ausgewählte Rheinwerk-Bücher jetzt online lesen! Kostenfrei

Information von Maxima2005 vor 1 TagE-Books1 Kommentar

Vielleicht hat ja jemand Interesse sein Wissen zu erweitern. Ausgewählte Rheinwerk-Bücher jetzt online lesen! Grüße Max

Instant Messaging
Jitsi Meet - April Update verfügbar
Information von Frank vor 1 TagInstant Messaging5 Kommentare

Im Rahmen des April-Updates erhält Jitsi Meet mehrere interessante Features. Anwender können nun nicht mehr nur ihren Bildschirm, sondern ...

Rechtliche Fragen

Rechtliche Grundlagen: Datenschutz und Datensicherheit im Homeoffice

Information von AnkhMorpork vor 2 TagenRechtliche Fragen

Sollte bekannt sein, aber

Router & Routing
"Upgrade" Fritte 7520 zu Fritte 7530 :-)
Information von Lochkartenstanzer vor 2 TagenRouter & Routing6 Kommentare

Moin, wie sich herausgestellt hat, ist die 7520 eine per Software kastrierte Version der 7530. Per "Chiptuning", um es ...

Heiß diskutierte Inhalte
Server-Hardware
Wie viel Speicher braucht eine Wissensdatenbank für bis zu 50 User?
Frage von Mrhallo19981Server-Hardware39 Kommentare

Hallo, könnt ihr mir sagen wieviel Speicherplatz eine Wissensdatenbank braucht (die physikalisch speichert, also nicht mit einer Datenbank zusammen) ...

Festplatten, SSD, Raid
Festplatten Datenvernichtung Server
Frage von survial555Festplatten, SSD, Raid30 Kommentare

Hallo, ich habe noch ein paar alte Server, wo ich die verbauten Festplatten gerne datentechnisch "sicher" löschen möchte. Leider ...

Linux
Internetprobleme mit Wine für Linux um .exe Dateien auszuführen
Frage von WinLiCLILinux22 Kommentare

Hallo zusammen, ich möchte auf meinem debian 10 einen client für cloud-telefonie (cloud pbx) installieren, den es nur für ...

Server-Hardware
Dimensionierung Server-Hardware
Frage von MurpelServer-Hardware17 Kommentare

Moin Moin, ich möchte einen Server besorgen und aufsetzen. Auf dem Server soll Branchensoftware laufen, auf die 4-6 Nutzer ...