Hallo zusammen,
heute wurde uns bei der MSDN Hotline
unter anderem folgende Frage gestellt:
Ich erhalte bei der Berechnung
decimal Mehrwertsteuer = (Anzahl * Preis) * 0.19;
den Compilerfehler CS0019 „
Der Operator "*" kann nicht auf Operanden vom Typ "decimal" und "double" angewendet werden”. Wie berechne ich korrekt einen Prozentsatz?
Unsere Antwort bzw. unser Lösungsvorschlag darauf war:
Der Syntaxfehler kommt vom Literal "0.19". Der Compiler nimmt bei solchen Literalen immer an, dass es sich dabei um ein
Double handle. Das ist hier natürlich nicht der Fall, vielmehr soll die Zahl ein
Decimal darstellen. Um dem Compiler anzuzeigen, welcher Typ zu verwenden sei, hängt man einen Buchstaben an [1]. Etwa "f" für Float und "m" für Decimal [2]. Korrekt wäre also:
decimal Mehrwertsteuer = (Anzahl * Preis) * 0.19m;
Quellen:
[1]
http://www.blackwasp.co.uk/CSharpNumericLiterals.aspx
[2]
http://msdn.microsoft.com/de-de/library/364x0z75.aspx
Wir hoffen, vielen Besuchern der
MSDN Foren durch das Posten dieses Problems und einer möglichen Lösung weiterhelfen zu können.
Viele Grüße,
Jonathan Best
MSDN Hotline für MSDN Online Deutschland
Disclaimer:
Bitte haben Sie Verständnis dafür, dass wir hier auf Rückfragen gar nicht oder nur sehr zeitverzögert antworten können.
Bitte nutzen Sie für Rückfragen oder neue Fragen den telefonischen Weg über die MSDN Hotline:
http://www.msdn-online.de/Hotline
Es gelten für die MSDN Hotline und dieses Posting diese Nutzungsbedingungen, Hinweise zu
Markenzeichen
Informationen zur Datensicherheit sowie die gesonderten
Nutzungsbedingungen für die MSDN Hotline.