c# Оператор '*' не может применяться к операндам типа 'double' и 'decimal'





2 Answers

Попробуй это:

Rate = (decimal)Vat * Finalprice;
c#

Я получаю это сообщение в своей программе, но я не знаю, как его исправить. У меня есть поиск в сети, но я не нашел ничего, что могло бы мне помочь.

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;

Оператор '*' не может применяться к операндам типа «double» и «decimal» - это то, что появляется на Rate = Vat * Finalprice; и я не знаю, могу ли я это исправить




Вы не можете умножить decimal на double . Вы можете исправить это путем литья типов, но вы, вероятно, просто хотите придерживаться decimal для всех цен и ставок НДС.

decimal тип был разработан, чтобы быть полезным для финансовых расчетов, поскольку он предлагает высокую точность за счет уменьшения диапазона для размера типа в байтах.






Related


Tags

c#