运算符'*'不能应用于'double'和'decimal'类型的操作数

use*_*722 31 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;
Run Code Online (Sandbox Code Playgroud)

运算符'*'不能应用于'double'类型的操作数,'decimal'就是Rate = Vat*Finalprice; 我不知道我能解决它

Mar*_*ett 16

你需要把一个投射到另一个.我的猜测是,价格和所有增值税税率都应该是十进制的 - 双倍(通常)不适合处理任何类型的货币价值.


Jun*_*Ito 11

试试这个:

Rate = (decimal)Vat * Finalprice;
Run Code Online (Sandbox Code Playgroud)


And*_*ber 4

更改foodVATRatedecimal了.似乎没有任何理由让它成倍增加.