C# 如何除掉整数而不得到1
只是一个简单的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): ");
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更适合于一个与你能容纳多少人无关的例子