C#变量自动向下舍入,而它';s设置为四舍五入到2位小数
每次我运行它时,它都会向下旋转C#变量自动向下舍入,而它';s设置为四舍五入到2位小数,c#,C#,每次我运行它时,它都会向下旋转num13,这不是我想要的。我想把它四舍五入到小数点后两位。如何将其四舍五入到小数点后2位,以便如果我输入正确的答案,例如10/4==2.50,那么如果(num12==num13)将计算为true?现在num13的计算结果为2,而不是预期的2.5 Random NumberGen = new Random(); start6: int num10 = NumberGen.Next(1, 11); int num11 = NumberGen.Next(
num13
,这不是我想要的。我想把它四舍五入到小数点后两位。如何将其四舍五入到小数点后2位,以便如果我输入正确的答案,例如10/4==2.50
,那么如果(num12==num13)
将计算为true
?现在num13
的计算结果为2,而不是预期的2.5
Random NumberGen = new Random();
start6:
int num10 = NumberGen.Next(1, 11);
int num11 = NumberGen.Next(1, 11);
start5:
if (num10 > num11)
{
Console.Write(num10 + " / " + num11 + " = ");
decimal num12;
num12 = Convert.ToDecimal(Console.ReadLine());
num12 = Math.Round(num12, 2);
decimal num13;
num13 = num10 / num11;
num13 = Math.Round(num13, 2);
if (num12 == num13)
{
Console.Clear();
goto start;
}
else
{
Console.WriteLine("wrong answer, try again.");
goto start5;
}
}
else
{
goto start6;
}
您必须将num10和num11初始化为十进制或双倍初始值,因为当您除以两个整数时,将得到一个整数值。您必须将num10和num11初始化为十进制或双倍初始值,因为当您除以两个整数时,将得到一个整数值。听起来很奇怪
decimal a = 10 / 4;
将产生2
,而不是2.5
。这是因为/
运算符在其两个操作数(10
和4
)都是整数时执行整数除法:
当你除以两个整数时,结果总是一个整数。(来源:)
在您的情况下,可以通过确保其中一个操作数不是整数来解决此问题:
decimal num13;
num13 = (decimal)num10 / num11;
(当你在做的时候:请考虑让你的变量名更具描述性)。
听起来很奇怪,
decimal a = 10 / 4;
将产生2
,而不是2.5
。这是因为/
运算符在其两个操作数(10
和4
)都是整数时执行整数除法:
当你除以两个整数时,结果总是一个整数。(来源:)
在您的情况下,可以通过确保其中一个操作数不是整数来解决此问题:
decimal num13;
num13 = (decimal)num10 / num11;
(当你在这方面:请考虑让你的变量名更具描述性)。
decimal num13= Math.Round((decimal)num10 / num11, 2);
一行
decimal num13= Math.Round((decimal)num10 / num11, 2);
这是你的朋友。整数除法
10/4=2
在除法整数时,因为余数被截断了。为什么在c#?!中使用goto语句?!?我强烈建议不惜一切代价避免goto
。有几个地方被认为可以普遍接受使用goto
,但它们都是非常特殊的情况。它创建了非常糟糕的程序流。谢谢它的工作,我很愚蠢。这是你的朋友。整数除法10/4=2
在除法整数时,因为余数被截断了。为什么在c#?!中使用goto语句?!?我强烈建议不惜一切代价避免goto
。有几个地方被认为可以普遍接受使用goto
,但它们都是非常特殊的情况。它创建了非常糟糕的程序流程。感谢它成功了,我很惊讶。你建议了相同的答案,但在我之前:(你建议了相同的答案,但在我之前:(