首页 > 解决方案 > 在C#中将整数与分数相乘并舍入为整数

问题描述

我需要得到三分之二并四舍五入到整数。

标准四舍五入:

我相信 AwayFromZero 是在这里使用的正确选择。但我认为我的乘法不正确,因为我的结果为 0。

int totalPoints= 71625;
int twoThirds = (int)Math.Round((double)totalPoints * (2 / 3), 0, MidpointRounding.AwayFromZero);

答案应该是 47750。

标签: c#

解决方案


因为2/3是一个int计算所以它会返回0,然后0 * totalPoints等于0

我会使用2/3m让计算结果为十进制。然后你可以得到你期望的结果。

int totalPoints = 71625;
int twoThirds = (int)Math.Round(totalPoints * (2/3m), 0, MidpointRounding.AwayFromZero);

推荐阅读