I get this message in my program but i don't know how to fix it i have search on the net but don't find any thing that can help me.
private double Price; private int Count; private double Vat; private const double foodVATRate = 0.12, otherVATRate = 0.25; private decimal Finalprice; private decimal Rate; public void Readinput() { Finalprice = (decimal)(Price * Count); } private void cal() { char answer = char.Parse(Console.ReadLine()); if ((answer == 'y') || (answer == 'Y')) Vat = foodVATRate; else Vat = otherVATRate; Rate = Vat * Finalprice;
Operator '*' cannot be applied to operands of type 'double' and 'decimal' is what comes up on Rate = Vat * Finalprice; and i don't know i can fix it
You can't multiply a decimal by a double .
Multiply() Method in C# The Decimal. Add() method in C# is used to multiply two specified Decimal values.
From the C# Annotated Standard (the ECMA version, not the MS version): The decimal suffix is M/m since D/d was already taken by double . Although it has been suggested that M stands for money, Peter Golde recalls that M was chosen simply as the next best letter in decimal .
Try this:
Rate = (decimal)Vat * Finalprice;
You need to cast one to the other. My guess is that both Price and all of your VAT rates should really be decimal - double isn't (usually) appropriate for dealing with any type of monetary values.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With