Încerc să fac un mic formular de comandă pentru pizza, dar am o problemă cu calculele. După selectarea unei pizza, prețul unitar și calculele totale sunt OK, dar selectarea adăugărilor introduce o problemă. După modificarea valorii NumericUpDown, caloriile nu sunt corecte (toate unitățile au prețuri și calorii constante). Numele NumericUpDown este numberofunit. Cum le pot calcula?

Acest cod este codul casetei de selectare a piperului.

text

1 Răspuns 1

Ar trebui să încercați cu adevărat să separați logica de calcul de logica UI (formularul). Atunci lucrurile vor deveni mult mai clare:

Ceea ce greșești este că scazi prețul ardeiului și caloriile de ardei din prețul unitar și caloriile unitare dacă nu este selectat niciun ardei. Cu toate acestea, prețul unitar (și caloriile) sunt deja fără ardei!

Nu văd când efectuați acest calcul, totuși, dacă îl efectuați de fiecare dată când creșteți numărul de unități, atunci veți adăuga prețul ardeiului de fiecare dată! Ar fi mai bine să aveți o variabilă separată pentru prețul unitar de bază care rămâne neschimbată atunci când verificați adăugările. Apoi începeți întotdeauna calculul din prețul unitar de bază.

În plus, amestecați mai multe tipuri diferite de numere. Acest lucru nu are sens.

Următorul pas pentru a îmbunătăți și mai mult codul ar fi crearea unei clase separate pentru calcule. De asemenea, puteți utiliza legarea datelor. Acest lucru ar elimina complet nevoia de a face conversii. Vedeți răspunsul meu la următoarea postare: manipulare-textbox-variabile-în-calcule