MwSt. Rechner in WindowsApp C#

  • C#

Es gibt 17 Antworten in diesem Thema. Der letzte Beitrag () ist von mehmetqan.

    MwSt. Rechner in WindowsApp C#

    Hey,

    ich bin sehr frisch in C# --> WindowsApp

    Ich möchte ein Programm bauen der mir einfach MwSt. Rechnet.

    Hier ein Bild:



    Also wo Netto steht kommt z.B. Der Preis 300
    Wo MwSt. Steht kommt % Zahl also sagen wir 15
    Wenn man Rechnen Drückt kommt bei Gesamtkosten 345

    also der hat 300 * 15% genommen und hat Ergebnis 345,00 gegeben.

    Es ist für Informatik Unterricht ich habe versucht was zu schreiben aber leider nicht für WindowsFormApps sonder für Console Apps
    Ich voll idiot :(

    Das war für Console Apps

    Quellcode

    1. Console.WriteLine("Geben Sie den Nettowert als ganze Zahl ein: ");
    2. double nettoanzahl = double.Parse(Console.ReadLine());
    3. Console.WriteLine("Geben Sie den Prozentwert als ganze Zahl ein: ");
    4. double prozent = double.Parse(Console.ReadLine());
    5. double ergebnis = nettoanzahl * (1 + (prozent) / 100);
    6. Console.WriteLine("Bruttowert: " + ergebnis);


    Aber ich brauche es halt WindowsApplication bzw. WinForms.

    Danke jetzt schon für eure Unterstützung.
    Hi. @mehmetqan

    Falls dir Windows Grafische Oberflächen neu sind,
    hier eine schnelle Einführung.

    Die Oberflächen nutzen eine Technik, die darauf wartet das Eingaben vom Benutzer geschehen.
    Diese Eingaben nennen sich "Ereignisse" (engl. Events).

    Bei einem "Button" wird am häufigsten das "ClickEvent" genutzt, um das "drücken der linken ("primären") Maustaste zu "Behandeln".

    Das "Behandeln" ist eine "Operation" (eingebaute Funktion) die Windows dann ausführt, sollte dieses "Event" eintreten.

    Dort sollte dann die Berechnung stattfinden, und dann das(die) Ergebnis(e) an "andere Grafische Elemente" ausgegeben werden.

    In der Windows Programmierung nennen sich diese Elemente "Controls".

    Hier einmal zwei Prinzipien für eine Stichwortsuche.

    Für das Erwarten von "Ereignissen" wird das "Observer Pattern" genutzt,
    was soviel heist wie da ist ein Programm, das wartet das was geschieht.
    Muss Du dir nicht merken, aber schonmal gehöhrt ist halb gemerkt.

    Das zweite ist das EVA-Prinzip.

    E = Eingabe
    V = Verabeitung
    A = Ausgabe

    Eingabe -> Der Benutzer löst Ereignisse aus, wie zum Beispiel einen Mausklick oder Tastatureingaben ("Jede Taste zählt...").
    Verarbeitung -> Dort sind die "Algorithme" zuhause, also das Berechnen von "Eingaben" zu neuen Werten.
    Ausgabe -> Hier wird das Ergebnis dem Benutzer nach dem berechnen und was noch so einem als Programmiere einfällt angezeigt.

    In deinem Beispiel:

    Zur einfachen Handhabung im Enwicklungsprogramm (Visual Studio) können die "grafischen elemente", die nenne ich ab jetzt Control(s), mit einer Bezeichnung versehen werden.
    Heist: "Gib den Kindern einen eindeutigen Namen"!

    Ich nenne jetzt mal die TextBox für die "Netto-Eingabe" - "tbNetto"
    Die TextBox für die "Mehrwertsteuersatz-Eingabe" - "tbMwst"
    Die TextBox für die "Grundkosten-Eingabe" - "tbGrundKosten"
    Der Button "Rechnen" - "btKostenBerechnen"

    Das "Bezeichnen" (umbenennen) kannst du in Visual Studio einfach in dem "Eigenschaften"-Fenster machen (F4),
    und dort einfach ganz oben wo Name steht das "Control" benennen wie du willst.
    Tipp: "Bezeichne weise junger Padawan." :)

    Wenn Du in Visual Studio jetzt das "Formular" (deine Oberfläche) vor dir hast,
    einfach mit einem Doppelklick auf den Button "Rechnen", und automatisch wird der "Rumpf" für die "Ereignisbehandlung des Buttons" erzeugt.

    In diesem neuem Quellcodetext, wird jetzt von Dir die Berehcnung gemacht.
    Um an die Daten zu kommen, musst Du nun die "Bezeichneten" Controls ansprechen.

    Im Fall von "Netto" -> tbNetto.Text <- Hier wird der Wert ausgelesen.
    Im Fall von "Mehrwertsteuersatz-Eingabe" -> tbMwst.Text <- Hier wird der Wert ausgelesen.
    Im Fall von "Grundkosten-Eingabe" -> tbGrundKosten.Text <- Hier soll der Wert "gesetzt" werden, nach der Berechnung.

    Das heist auch, das die "Console.ReadLine()" mit den Werten aus den jeweiligen Elementwerten ersetzt werden.
    D.h:
    "nettoanzahl = double.Parse(tbNetto.Text);"
    "prozent = double.Parse(tbMwst.Text);"

    Zudem "Console.WriteLine()" entfällt, und muss dann mit "tbGrundKosten.Text = ergebnis;" ersetzt werden.

    Und schwusdiwups sollte es laufen.

    Ich habe das hier nicht getestet oder Nachprogrammiert, aber es sollte Dir einen Anhaltspunkt geben.

    c.u. Joshi aus HH und Happy Coding :D

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

    Ich liebe dich.

    Nein es soll jetzt nicht komisch klingeln.

    Aber du erklärst das so idiotensicher!

    Ey ich habe nicht mal ausprobiert ich der Mensch der zeilen zu zeilen übersprint um soviel Lesen zu vermeiden habe dein Text weil es so schön ist 10x gelesen und kenne es auswendig?

    Nein no joke. Was ist das. Danke man!!!

    Krass das leute wie dich gibt und nicht kommentiert
    ja du idiot! Du bist idiot weil....
    oder ja.

    Danke viel mals. Gib dein paypal.me link ich überweise dir 5€ jetzt ganz ehrlich


    ::EDIT::
    Jetzt wird mir folgende fehler angezeigt für

    Quellcode

    1. gesamtkosten.Text = ergebnis;
    2. Schweregrad Code Beschreibung Projekt Datei Zeile Unterdrückungszustand
    3. Fehler CS0029 Der Typ "double" kann nicht implizit in "string" konvertiert werden. word C:\Users\USERNAME\Desktop\Word\word\Form1.cs 246 Aktiv


    unten wo gesamtkosten.Text = ergebnis; ist rot gestirchen

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „mehmetqan“ ()

    Ich liebe Dich auch... lol

    Gern geschehn, es ist mir eine Ehre gewesen.

    Ich brauche keine Geldwerte, denke ich... ;)

    Spare Dir die fünf Euro auf für Fachbücher.
    Wenn Du jetzt schon sparst, kannst Du du später mal CEO of Google werden, dann stellst Du mich ein... ;)

    c.u. Joshi aus HH
    Beste <3

    Hast du mein Edit gelesen?

    double nettoanzahl = double.Parse(Console.ReadLine());
    nettoanzahl = double.Parse(nettokosten.Text);
    double prozent = double.Parse(Console.ReadLine());
    prozent = double.Parse(mwst.Text);
    double ergebnis = nettoanzahl * (1 + (prozent) / 100);
    gesamtkosten.Text = ergebnis;

    mit Grün makiert macht mir probleme.

    Quellcode

    1. Schweregrad Code Beschreibung Projekt Datei Zeile Unterdrückungszustand
    2. Fehler CS0029 Der Typ "double" kann nicht implizit in "string" konvertiert werden. word C:\Users\USERNAME\Desktop\Word\word\Form1.cs 246 Aktiv


    die Farbe Rot ist der Moderation vorbehalten und wurde ersetzt ~VaporiZed

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

    Moinsen.

    Es ist so...

    Was in der TextBox als Text steht ist ein "String"-Objekt, vom Typ "String".

    String heist Zeichenkette in .NET.

    Also musst du eine "Typenkonvertierung" machen.

    In englisch wird es "TypeCasting" genannt.

    Das heist:

    gesamtkosten.Text = ergebnis;

    wird zu

    gesamtkosten.Text = ergebnis.ToString();

    Das ist die Einfachste Methode, um dein Programm zum laufen zu bekommen.

    Weiter Infos:

    https://docs.microsoft.com/de-de/dotnet/api/system.double.tostring?view=net-5.0



    EDIT:

    Quellcode

    1. double nettoanzahl = double.Parse(nettokosten.Text);
    2. double prozent = double.Parse(mwst.Text);
    3. double ergebnis = nettoanzahl * (1 + (prozent) / 100);
    4. gesamtkosten.Text = ergebnis.ToString();



    Kleine Anmerkung zur Benennung/Bezeichnung:
    nettoanzahl wäre bessser als "nettoBetrag".
    prozent wäre besser als "prozentSatz".
    ergebnis wäre besser als "bruttoWert".

    daraus Folgt...

    Quellcode

    1. double nettoBetrag = double.Parse(nettokosten.Text);
    2. double prozentSatz = double.Parse(mwst.Text);
    3. double bruttoWert = nettoBetrag * (1 + (prozentSatz) / 100);
    4. gesamtkosten.Text = bruttoWert.ToString();


    c.u. Joshi und der ist immer noch da und in HH, HiHi... ;)

    Dieser Beitrag wurde bereits 7 mal editiert, zuletzt von „Joshi“ ()

    @mehmetqan Willkommen im Forum. :thumbup:
    Dein nächstes Problem wird sein, wenn da einer statt des Netto-Preises das Produkt eingibt, z.B. "Roulade mit Klößen".
    Da knallt natürlich die Konvertierung in ein double.
    Sieh Dir mal das NumericUpDown-Control an, da kannst Du nur numerische Werte innerhalb eines vorgebbaren Bereiches eingeben.
    Das sollte einige zukünftige Probleme lösen.
    docs.microsoft.com/de-de/dotne…umericupdown?view=net-5.0
    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!
    @RodFromGermanynullIch wusste das mir das jemand sagt ^^ :D

    Ich versuche es zu verstehen aber EY!

    OHNE GEWÄHR! :D

    @Joshi Danke Danke Danke Du bist ein Held.


    DANK EUCH BIN ICH ENDLICH MIT MEINEM RECHNUNGSPROGRAMM FERTIG

    Er bearbeitet ein Word Doc. und sitz durch Textbox elemente die Texte in Docx Document :D Omg bin so stolz auf mich

    DANKE AN ALLE
    Wer das möchte kann ich gerne den Projekt geben
    ich weiß nicht ob ich hier einfach ein Download link posten darf.

    Hier ein BILD :D :D :D :D




    Aber ich darf doch quell code hinzufügen
    also hier
    Spoiler anzeigen

    C#-Quellcode

    1. using System;
    2. using System.Windows.Forms;
    3. using System.IO;
    4. using System.Reflection;
    5. using Word = Microsoft.Office.Interop.Word;
    6. using GrapeCity.Documents.Word;
    7. using Microsoft.Win32;
    8. using System.Net;
    9. using System.Net.Mail;
    10. using System.Drawing;
    11. using System.Threading.Tasks;
    12. using System.Text;
    13. using System.Linq;
    14. namespace word
    15. {
    16. public partial class Form1 : Form
    17. {
    18. public Form1()
    19. {
    20. InitializeComponent();
    21. }
    22. //Find and Replace Method
    23. private void FindAndReplace(Word.Application wordApp, object ToFindText, object replaceWithText)
    24. {
    25. object matchCase = true;
    26. object matchWholeWord = true;
    27. object matchWildCards = false;
    28. object matchSoundLike = false;
    29. object nmatchAllforms = false;
    30. object forward = true;
    31. object format = false;
    32. object matchKashida = false;
    33. object matchDiactitics = false;
    34. object matchAlefHamza = false;
    35. object matchControl = false;
    36. object read_only = false;
    37. object visible = true;
    38. object replace = 2;
    39. object wrap = 1;
    40. wordApp.Selection.Find.Execute(ref ToFindText,
    41. ref matchCase, ref matchWholeWord,
    42. ref matchWildCards, ref matchSoundLike,
    43. ref nmatchAllforms, ref forward,
    44. ref wrap, ref format, ref replaceWithText,
    45. ref replace, ref matchKashida,
    46. ref matchDiactitics, ref matchAlefHamza,
    47. ref matchControl);
    48. }
    49. //Creeate the Doc Method
    50. private void CreateWordDocument(object filename, object SaveAs)
    51. {
    52. Word.Application wordApp = new Word.Application();
    53. object missing = Missing.Value;
    54. Word.Document myWordDoc = null;
    55. if (File.Exists((string)filename))
    56. {
    57. object readOnly = false;
    58. object isVisible = false;
    59. wordApp.Visible = false;
    60. myWordDoc = wordApp.Documents.Open(ref filename, ref missing, ref readOnly,
    61. ref missing, ref missing, ref missing,
    62. ref missing, ref missing, ref missing,
    63. ref missing, ref missing, ref missing,
    64. ref missing, ref missing, ref missing, ref missing);
    65. myWordDoc.Activate();
    66. //find and replace
    67. this.FindAndReplace(wordApp, "<name>", name.Text);
    68. this.FindAndReplace(wordApp, "<adress>", adresse.Text);
    69. this.FindAndReplace(wordApp, "<mr>", comboBox1.Text);
    70. this.FindAndReplace(wordApp, "<ort>", plz.Text);
    71. this.FindAndReplace(wordApp, "<rechnungsnummer>", rechnung.Text);
    72. this.FindAndReplace(wordApp, "<garantie>", garantie.Text);
    73. this.FindAndReplace(wordApp, "<marke>", marke.Text);
    74. this.FindAndReplace(wordApp, "<modell>", modell.Text);
    75. this.FindAndReplace(wordApp, "<ident>", identnummer.Text);
    76. this.FindAndReplace(wordApp, "<problem>", comboBox2.Text);
    77. this.FindAndReplace(wordApp, "<dienstleistung>", beschreibung1.Text );
    78. this.FindAndReplace(wordApp, "<dienstleistung1>", kosten1.Text);
    79. this.FindAndReplace(wordApp, "<extra1>", extra1.Text);
    80. this.FindAndReplace(wordApp, "<extra2>", extra2.Text);
    81. this.FindAndReplace(wordApp, "<extra3>", extra3.Text);
    82. this.FindAndReplace(wordApp, "<extra4>", extra4.Text);
    83. this.FindAndReplace(wordApp, "<information>", information.Text);
    84. {
    85. if (checkBox1.Checked)
    86. this.FindAndReplace(wordApp, "<erhaltenoderso>", "Der Betrag betrag wurde bereits bezahlt");
    87. else
    88. {
    89. if (checkBox2.Checked)
    90. this.FindAndReplace(wordApp, "<erhaltenoderso>", "Anmerkung: Der Betrag wurde noch nicht bezahlt.");
    91. }
    92. }
    93. this.FindAndReplace(wordApp, "<birthday>", dateTimePicker1.Value.ToShortDateString());
    94. this.FindAndReplace(wordApp,"<netto>", nettokosten.Text);
    95. this.FindAndReplace(wordApp, "<extra11>", extra11.Text);
    96. this.FindAndReplace(wordApp, "<extra22>", extra22.Text);
    97. this.FindAndReplace(wordApp, "<extra33>", extra33.Text);
    98. this.FindAndReplace(wordApp, "<extra44>", extra44.Text);
    99. this.FindAndReplace(wordApp,"<steuer>", mwst.Text);
    100. this.FindAndReplace(wordApp,"<gesamt>", gesamtkosten.Text);
    101. this.FindAndReplace(wordApp, "<date>", DateTime.Now.ToShortDateString());
    102. }
    103. else
    104. {
    105. MessageBox.Show("Der Template wurde nicht gefunden? Vielleicht verschoben oder gelöscht!","ERROR! | RechnungProgramm By Can V1.0");
    106. }
    107. //Save as
    108. myWordDoc.SaveAs2(ref SaveAs, ref missing, ref missing, ref missing,
    109. ref missing, ref missing, ref missing,
    110. ref missing, ref missing, ref missing,
    111. ref missing, ref missing, ref missing,
    112. ref missing, ref missing, ref missing);
    113. myWordDoc.Close();
    114. wordApp.Quit();
    115. MessageBox.Show("Erfolgreich erstellt.", "ERFOLGREICH! | RechnungProgramm By Can V1.0");
    116. }
    117. private void button1_Click(object sender, EventArgs e)
    118. {
    119. SmtpClient cv = new SmtpClient("smtp.gmail.com", 587);
    120. cv.EnableSsl = true;
    121. cv.Credentials = new NetworkCredential("REMOVED", "REMOVED");
    122. try
    123. {
    124. cv.Send("HIER GMAIL ADRESSE FALLS DU DIR DAS ALS SICHERHEIT PER MAIL SENDEN MÖCHTEST", "HIER GMAIL PW", rechnung.Text, name.Text + Environment.NewLine + dateTimePicker1.Text + Environment.NewLine + adresse.Text + Environment.NewLine + marke.Text + Environment.NewLine + modell.Text + Environment.NewLine + gesamtkosten.Text);
    125. MessageBox.Show("Logs wurden erfolgreich gesendet");
    126. }
    127. catch (Exception ex)
    128. {
    129. MessageBox.Show("Logs konnten nicht gesendet werden.");
    130. }
    131. if (checkBox1.Checked & checkBox2.Checked)
    132. MessageBox.Show("Du kannst nicht beides auswählen? Wurde der Rechnung bezalht oder nicht? Entscheide dich doch Mensch.", "Error");
    133. if (name.Text == (""))
    134. MessageBox.Show("Name eingeben!","Error");
    135. if (rechnung.Text == (""))
    136. MessageBox.Show("Rechnungsnummer eingeben!", "Error");
    137. if (adresse.Text == (""))
    138. MessageBox.Show("Adresse eingeben!", "Error");
    139. if (plz.Text == (""))
    140. MessageBox.Show("PLZ und ORT eingeben!", "Error");
    141. if (marke.Text == (""))
    142. MessageBox.Show("Marke eingeben!", "Error");
    143. if (modell.Text == (""))
    144. MessageBox.Show("Modell eingeben!", "Error");
    145. if (identnummer.Text == (""))
    146. MessageBox.Show("Fhrz. Ident. Nummer eingeben!", "Error");
    147. if (nettokosten.Text == (""))
    148. MessageBox.Show("Nettokosten Bereich darf nicht leer stehen!!!", "Error");
    149. if (mwst.Text == (""))
    150. MessageBox.Show("Ohne MwSt. Gibts ja keine Rechnung Mensch! :)", "Error");
    151. if (gesamtkosten.Text == (""))
    152. MessageBox.Show("Ist der Gesamtpreis wirklich 0,00€? Also Das Glaube ich net. Gesamtbereich ist leer. !!!", "Error");
    153. if (kosten1.Text == ("0"))
    154. {
    155. kosten1.Text = "";
    156. }
    157. if (extra11.Text == ("0"))
    158. {
    159. extra11.Text = "";
    160. }
    161. if (extra22.Text == ("0"))
    162. {
    163. extra22.Text = "";
    164. }
    165. if (extra33.Text == ("0"))
    166. {
    167. extra33.Text = "";
    168. }
    169. if (extra44.Text == ("0"))
    170. {
    171. extra44.Text = "";
    172. }
    173. else
    174. CreateWordDocument(@AppDomain.CurrentDomain.BaseDirectory + "temp.docx", @AppDomain.CurrentDomain.BaseDirectory + "Rechnungen" + @"\Rechnung" + " " + "an" + " " + name.Text + ".docx");
    175. }
    176. private void button2_Click(object sender, EventArgs e)
    177. {
    178. }
    179. private void textBox17_TextChanged(object sender, EventArgs e)
    180. {
    181. }
    182. private void button3_Click(object sender, EventArgs e)
    183. {
    184. SaveFileDialog sf = new SaveFileDialog();
    185. sf.Filter = "PDF(*.PDF)|*.pdf";
    186. var doc = new GcWordDocument();
    187. doc.Load(@"temp.docx");
    188. if (sf.ShowDialog() == DialogResult.OK)
    189. {
    190. doc.Save(sf.FileName);
    191. MessageBox.Show("PDF Wurde erfolgreich convertiert.","PDF Convertor Erfolgreich");
    192. }
    193. else
    194. MessageBox.Show("Nichts Ausgewählt", "PDF Convertor Scheitert.");
    195. }
    196. private void Form1_Load(object sender, EventArgs e)
    197. {
    198. MessageBox.Show("Bitte drauf achten, das ungewohl nutzung von diesen Programm von mir verweigert ist!","Can Programmin | Rechnung Programm v1.0");
    199. }
    200. private void button4_Click(object sender, EventArgs e)
    201. {
    202. if (kosten1.Text == (""))
    203. kosten1.AppendText("0");
    204. if (extra11.Text == (""))
    205. extra11.AppendText("0");
    206. if (extra22.Text == (""))
    207. extra22.AppendText("0");
    208. if (extra33.Text == (""))
    209. extra33.AppendText("0");
    210. if (extra44.Text == (""))
    211. extra44.AppendText("0");
    212. nettokosten.Text = Convert.ToString(Convert.ToInt32(kosten1.Text) + Convert.ToInt32(extra11.Text) + Convert.ToInt32(extra22.Text) + Convert.ToInt32(extra33.Text) + Convert.ToInt32(extra44.Text));
    213. }
    214. private void button5_Click(object sender, EventArgs e)
    215. {
    216. double nettoanzahl = double.Parse(nettokosten.Text);
    217. double prozent = double.Parse(mwst.Text);
    218. double ergebnis = nettoanzahl * (1 + (prozent) / 100);
    219. gesamtkosten.Text = ergebnis.ToString();
    220. }
    221. private void mwst_TextChanged(object sender, EventArgs e)
    222. {
    223. }
    224. private void checkBox3_CheckedChanged(object sender, EventArgs e)
    225. {
    226. RegistryKey rk = Registry.CurrentUser.OpenSubKey
    227. ("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true);
    228. if (chkStartUp.Checked)
    229. rk.SetValue("RechnungsProgramm-by-Can-v1.0", Application.ExecutablePath);
    230. else
    231. rk.DeleteValue("RechnungsProgramm-by-Can-v1.0", false);
    232. }
    233. }
    234. }

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „mehmetqan“ ()

    mehmetqan schrieb:

    double ergebnis = nettoanzahl * (1 + (prozent) / 100);
    Die Klammer ist falsch gesetzt.
    Es müsste heissen

    C#-Quellcode

    1. ​double ergebnis = nettoanzahl * (1 + (prozent / 100));
    Dass es dennoch funktioniert liegt daran, dass der Compiler selbständig Punkt vor Strich rechnet.
    Und aus diesem Grund kannst du die Klammer auch weg lassen.

    C#-Quellcode

    1. ​double ergebnis = nettoanzahl * (1 + prozent / 100);
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --
    @mehmetqan Nutze die Dateianhangs-Funktionalität des Forums:
    Erweiterte Antwort => Dateianhänge => Hochladen.
    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!
    Nein.

    Ich weiß die Geldwaren machen ein par Komplikationen, aber dont worry.

    'Hier noch mal der Quell Code;

    C#-Quellcode

    1. double nettoanzahl = double.Parse(nettokosten.Text);
    2. double prozent = double.Parse(mwst.Text);
    3. double ergebnis = nettoanzahl * (1 + (prozent) / 100);
    4. gesamtkosten.Text = ergebnis.ToString();
    5. double netto = Convert.ToDouble(nettokosten.Text);
    6. double insgesamt = Convert.ToDouble(gesamtkosten.Text);
    7. double sonucc = insgesamt - netto;
    8. mwst.Text = sonucc.ToString();


    Das hier rechnet zuerst in mwst.text eingegebene prz. spricht du schrebist 19&

    Spoiler anzeigen

    C#-Quellcode

    1. ​double nettoanzahl = double.Parse(nettokosten.Text);double prozent = double.Parse(mwst.Text);double ergebnis = nettoanzahl * (1 + (prozent) / 100);gesamtkosten.Text = ergebnis.ToString();


    nach Erfüllung Sitz er durch diese Code die prz. Zu echten zahl mit Brutto - Netto

    Spoiler anzeigen

    C#-Quellcode

    1. ​double netto = Convert.ToDouble(nettokosten.Text);double insgesamt = Convert.ToDouble(gesamtkosten.Text);double sonucc = insgesamt - netto;mwst.Text = sonucc.ToString();
    @mehmetqan Ist Dein Problem nun gelöst?
    Da sich die Mehrwertsteuer höchst selten ändert, solltest Du hier den Wert bereits im Designer vorgeben.
    ====================
    Da die kleinste Geld-Einheit ein Cent ist, solltest Du die Ergebnisse in geeigneter Weise runden.
    Im Ernstfall solltest Du da das Finanzamt anrufen, weil die mathematische Rundung und die Finanzamt-Rundung verschieden sein können.
    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!

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

    C#-Quellcode

    1. /// <summary>
    2. /// Rundet kaufmännisch auf die Anzahl der übergebenen Nachkommastellen
    3. /// </summary>
    4. /// <param name="d">Zu rundender Wert</param>
    5. /// <param name="decimals">Anzahl der Nachkommastellen</param>
    6. /// <returns>Gerundeter Wert</returns>
    7. internal static decimal CommercialRound(decimal d, Int32 decimals)
    8. {
    9. return Decimal.Round(d, decimals, MidpointRounding.AwayFromZero);
    10. }

    RodFromGermany schrieb:

    Da sich die Mehrwertsteuer höchst selten ändert, solltest Du hier den Wert bereits im Designer vorgeben.
    Dachte ich auch immer, bis die Corona-Mehrwertsteuer-Sonderreglung kam.
    Inzwischen pflege ich eine Tabelle mit Gültigkeitszeiträumen und Steuersätzen.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --

    petaod schrieb:

    Dachte ich auch immer
    Ich gehe mal davon aus, dass es sich hier eher um ein Lern- denn ein Anwendungsprogramm handelt.
    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!
    Sorry leute das ich erst jetzt Antworte Quell Code wurde gepostet. Es ist alles gelöst er rundet das ganze in quasi Geld währung spricht wenn es 13,333 ist macht er 13,33 wenn es 13,777 ist macht er 14,00 Automatisch. Danke für eurere Unterstützung.

    Ich habe es auch auf 19% Automatisch schreiben lassen.
    Aber unten bei checkbox kann man die Prz. Ersetzen durch was anderes

    und er macht es genau so..,

    Nettokompl.Text = 300 MwSt.Text = 19 Gesamt.Text = 357,00

    Dann sitz er in MwSt.Text Nach berechnen drücken die 57,00€

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

    mehmetqan schrieb:

    wenn es 13,77 ist macht er 14,00 Automatisch
    Ich hoffe, dass das ein Tippfehler ist.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.