繁体   English   中英

如何除整数而不是 1

[英]How do I divide integers and not get a 1

只是 c# 中的一个简单控制台程序。 答案始终是 1,但我想得到正确的答案,并且答案始终是 integer,这里只有整数。

        Console.Write("Ange dagskassa (kr): ");
        string inlasning = Console.ReadLine();
        int dagskassa = int.Parse(inlasning);

        Console.Write("Ange nuvarande lunchpris (kr): ");
        string inlasning2 = Console.ReadLine();
        int lunchpris = int.Parse(inlasning);

        double antalGaster = dagskassa / lunchpris;

        Console.WriteLine("Antal gäster: " + antalGaster + "st.");

这里的问题是您将相同的数字两次转换为两个不同的变量,然后将它们相除,因此答案将始终为1

int dagskassa = int.Parse(inlasning);
int lunchpris = int.Parse(inlasning);  // You're parsing the same input as before

要解决此问题,请将第二个输入转换为午餐价格:

int dagskassa = int.Parse(inlasning2);  // Parse the *new* input instead

您需要将您的整数转换为双倍才能使上述内容起作用。 例如,

int i = 1;
int j = 2;
double _int = i / j; // without casting, your result will be of type (int) and is rounded
double _double = (double) i / j; // with casting, you'll get the expected result

对于您的代码,这将是

double antalGaster = (double) dagskassa / lunchpris;

要四舍五入到人数的最低整数,请使用 Math.Floor()

double antalGaster = Math.Floor((double) dagskassa / lunchpris);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM