简单地说,我是个新手,我不明白为什么我需要total成为替身,我的老师在他的程序中把它作为浮点,但它对我不起作用。
int choix;
double total = 0;
do
{
Console.WriteLine("Menunn");
Console.WriteLine("1 - Pizza 3.25$n");
Console.WriteLine("2 - Poutine 2.75$n");
Console.WriteLine("3 - Liqueur 1.25$n");
Console.WriteLine("4 - Finnn");
Console.WriteLine("Votre choix(1 - 4)");
choix = int.Parse(Console.ReadLine());
switch(choix)
{
case 1:total = total + 3.25;
break;
case 2:total = total + 2.75;
break;
case 3:total = total + 1.25;
break;
case 4:Console.WriteLine("Voici le total " + total);
break;
default:Console.WriteLine("Erreur de choix");
break;
}
}
while (choix != 4);
很抱歉问了这个愚蠢的问题,但我在任何地方都找不到答案。
基本上,由于c#解释代码的方式,c#不知道你的十进制数字是否会溢出,所以它会自动将所有浮点值分配为双精度(实际上它可以容纳比浮点值更多的值(。因此,为了让编译器明白你实际上想要一个浮点,你需要做的是在数字的末尾加一个f。
int choix;
float total = 0;
do
{
Console.WriteLine("Menunn");
Console.WriteLine("1 - Pizza 3.25$n");
Console.WriteLine("2 - Poutine 2.75$n");
Console.WriteLine("3 - Liqueur 1.25$n");
Console.WriteLine("4 - Finnn");
Console.WriteLine("Votre choix(1 - 4)");
choix = int.Parse(Console.ReadLine());
switch (choix)
{
case 1:
total = total + 3.25f;
break;
case 2:
total = total + 2.75f;
break;
case 3:
total = total + 1.25f;
break;
case 4:
Console.WriteLine("Voici le total " + total);
break;
default:
Console.WriteLine("Erreur de choix");
break;
}
}
while (choix != 4);