【问题标题】:Why do I need a double? [duplicate]为什么我需要双份? [复制]
【发布时间】:2021-02-23 00:55:35
【问题描述】:

简单地说,我很新,我不明白为什么我需要 total 是一个双精度,我的老师把它作为一个浮点数放在他的程序中,但它不适用于我。

        int choix;
        double total = 0;

        do
        {
            Console.WriteLine("Menu\n\n");
            Console.WriteLine("1 - Pizza 3.25$\n");
            Console.WriteLine("2 - Poutine 2.75$\n");
            Console.WriteLine("3 - Liqueur 1.25$\n");
            Console.WriteLine("4 - Fin\n\n");

            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);

抱歉这个愚蠢的问题,但我在任何地方都找不到答案。

【问题讨论】:

  • 请注意,对于货币值,您实际上应该使用decimal...

标签: c#


【解决方案1】:

基本上因为 c# 解释代码的方式,c# 不知道你的十进制数是否会溢出,所以它会自动将所有浮点值分配为双精度值(实际上它可以容纳比浮点数更多的值)。因此,为了让编译器了解您实际上想要一个浮点数,您需要做的是在数字末尾添加一个 f。

int choix;
float total = 0;

do
{
    Console.WriteLine("Menu\n\n");
    Console.WriteLine("1 - Pizza 3.25$\n");
    Console.WriteLine("2 - Poutine 2.75$\n");
    Console.WriteLine("3 - Liqueur 1.25$\n");
    Console.WriteLine("4 - Fin\n\n");

    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); 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-03-16
    • 2020-09-26
    • 1970-01-01
    • 2019-08-22
    • 2021-06-21
    • 1970-01-01
    • 2020-11-15
    • 2011-02-12
    相关资源
    最近更新 更多