none
Aus der MSDN-Hotline: Prozentrechnen mit C# RRS feed

  • Allgemeine Diskussion

  • 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
    MSDN Hotline: Schnelle & kompetente Hilfe für Entwickler: kostenfrei!

    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.


    • Bearbeitet Jonny Best Mittwoch, 11. Januar 2012 16:47
    Mittwoch, 11. Januar 2012 16:11