C# 用C四舍五入一个数字#
我创建了一个认证系统,用户可以参加考试。在给考试打分时,我希望返回一个百分比,所以我取正确的题数,除以考试题数,再乘以100 我的问题是把数字四舍五入。所以,如果返回的数字是76.9,我的代码给我76,四舍五入应该是77,等等 这是一行代码,我正在解决这个问题C# 用C四舍五入一个数字#,c#,math,rounding,C#,Math,Rounding,我创建了一个认证系统,用户可以参加考试。在给考试打分时,我希望返回一个百分比,所以我取正确的题数,除以考试题数,再乘以100 我的问题是把数字四舍五入。所以,如果返回的数字是76.9,我的代码给我76,四舍五入应该是77,等等 这是一行代码,我正在解决这个问题 int userScorePercentageConvert = (int)decimal.Round((correctQuestionsForAttempt.Count / dvAttemptQuestions.Count * 100)
int userScorePercentageConvert = (int)decimal.Round((correctQuestionsForAttempt.Count / dvAttemptQuestions.Count * 100), MidpointRounding.AwayFromZero);
谁能告诉我如何修改这段代码,使其正确舍入
i、 e.43.4=44 | 67.7=68 | 21.5=22
非常感谢。您只需做
数学。天花板(43.4)
我相信您正在寻找
这将为您提供
44
只需在您的号码上添加.5,然后再施放该号码问题在于您正在使用:
(correctQuestionsForAttempt.Count / dvAttemptQuestions.Count * 100)
在这种情况下,使用整数除法,结果总是0或100
这将有助于:
(100.0 * correctQuestionsForAttempt.Count / dvAttemptQuestions.Count)
此外,根据您的描述,您需要的是一个函数(可以将其视为向上舍入),而不是一个舍入
(舍入到最接近的整数,并提供如何舍入中点值的选项)
这不是一个取整问题;这是一个数字型问题 集合的
.Count
属性(我假设这就是correctQuestionsFattPent
和dvAttemptQuestions
的属性)是int
。将int
除以int
将得到另一个int
,没有小数点。像这样截断小数点会出现向下舍入的现象。结果是,对decimal.Round
的调用试图对已经是整数的内容进行四舍五入
如果在除以总数之前将正确数字乘以100,则应更正此问题。您需要Math.天花板()-请参阅
在您的上下文中,它将按如下方式使用:
int userScorePercentageConvert = (int)Math.Ceiling((correctQuestionsForAttempt.Count / dvAttemptQuestions.Count * 100));
只是一个猜测,试着抛出正确的问题。在除法之前数到a(双)。
int userScorePercentageConvert = (int)Math.Ceiling(100.0 * correctQuestionsForAttempt.Count / dvAttemptQuestions.Count);
int userScorePercentageConvert = (int)Math.Ceiling((correctQuestionsForAttempt.Count / dvAttemptQuestions.Count * 100));