C# 如何除掉整数而不得到1

C# 如何除掉整数而不得到1,c#,C#,只是一个简单的c#控制台程序。答案总是1,但我想得到正确的答案,答案总是整数,这里只有整数 Console.Write("Ange dagskassa (kr): "); string inlasning = Console.ReadLine(); int dagskassa = int.Parse(inlasning); Console.Write("Ange nuvarande lunchpris (kr): ");

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

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

您需要将整数转换为双倍,才能使上述操作正常工作。比如说,

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


您需要将整数转换为双倍,才能使上述操作正常工作。比如说,

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


这里的问题是,将同一个数字转换两次,转换成两个不同的变量,然后将它们除以,所以答案总是
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

这里的问题是,将同一个数字转换两次,转换成两个不同的变量,然后将它们除以,所以答案总是
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

整数除法问题:
3/2=1
,但
3.0/2=1.5
;将至少一个值转换为
double
,例如
double antalGaster=(double)dagskassa/午餐pris关于截断的原因,请详细说明:,,-如果目标是“取整”(或其他),请将其添加到搜索查询“C#整数除法取整”中,等等//从inlasning->inlasning2
double antalGaster=(double)dagskassa/Liuntpris整数除法问题:
3/2=1
,但
3.0/2=1.5
;将至少一个值转换为
double
,例如
double antalGaster=(double)dagskassa/午餐pris关于截断的原因,请详细说明:,,-如果目标是“取整”(或其他),请将其添加到搜索查询“C#整数除法取整”中,等等//从inlasning->inlasning2
double antalGaster=(double)dagskassa/Liuntpris哇!感谢RufusAlso,
System.Math.Floor
将创建一个截断的整数,而不是四舍五入到最接近的整数(如
System.Math.Round
)。注意关于舍入的语言。考虑使用<代码>回合<代码>,而不是<代码> Load < /C> >,或者更新您的文本,以表示它将截断而不是圆。是的,我选择了这里,作为一个整数以上的任何增量将代表一个人的一小部分。我认为System.Math.Round更适合作为一个与你能容纳多少人无关的例子!感谢RufusAlso,
System.Math.Floor
将创建一个截断的整数,而不是四舍五入到最接近的整数(如
System.Math.Round
)。注意关于舍入的语言。考虑使用<代码>回合<代码>,而不是<代码> Load < /C> >,或者更新您的文本,以表示它将截断而不是圆。是的,我选择了这里,作为一个整数以上的任何增量将代表一个人的一小部分。我认为System.Math.Round更适合于一个与你能容纳多少人无关的例子