tipo sharp puede operandos operadores operador jerarquia bool aplicar c#

c# - puede - jerarquia de operadores en c sharp



El operador ''*'' no se puede aplicar a los operandos de tipo ''doble'' y ''decimal'' (4)

Cambie foodVATRate a decimal , también. No parece haber ninguna razón para que sea doble.

Recibo este mensaje en mi programa, pero no sé cómo solucionarlo. Busco en la red pero no encuentro nada que pueda ayudarme.

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;

El operador ''*'' no se puede aplicar a los operandos de tipo ''doble'' y ''decimal'' es lo que aparece en Rate = Vat * Finalprice; y no se que pueda arreglarlo


Necesitas lanzar uno al otro. Mi conjetura es que tanto el precio como todas sus tasas de IVA deberían ser realmente decimales; el doble no es (generalmente) apropiado para tratar con cualquier tipo de valores monetarios.


No puedes multiplicar un decimal por un double . Puede solucionar esto por tipo de conversión, pero probablemente solo querrá seguir usando decimal para todos los precios y tasas de IVA en todo.

El tipo decimal fue diseñado para ser útil para los cálculos financieros, ya que ofrece una alta precisión al costo del rango reducido para el tamaño del tipo en bytes.


Prueba esto:

Rate = (decimal)Vat * Finalprice;