c# - 在C#中将整数与分数相乘并舍入为整数
问题描述
我需要得到三分之二并四舍五入到整数。
标准四舍五入:
- 0.6 轮到 1
- 0.5 轮到 1
- 0.4 轮到 0
我相信 AwayFromZero 是在这里使用的正确选择。但我认为我的乘法不正确,因为我的结果为 0。
int totalPoints= 71625;
int twoThirds = (int)Math.Round((double)totalPoints * (2 / 3), 0, MidpointRounding.AwayFromZero);
答案应该是 47750。
解决方案
因为2/3
是一个int
计算所以它会返回0
,然后0 * totalPoints
等于0
我会使用2/3m
让计算结果为十进制。然后你可以得到你期望的结果。
int totalPoints = 71625;
int twoThirds = (int)Math.Round(totalPoints * (2/3m), 0, MidpointRounding.AwayFromZero);
推荐阅读
- javascript - 单击时滚动到 Kendo Grid 行 - 出现意外的 JavaScript 错误
- c++ - TZ 时间的 C++ 结构,但没有日期?
- javascript - Requirejs 和 polyfill.io mishmash
- mysql - 使用 socket.io 连接到带有套接字的 mysql 数据库时出错
- javascript - 如何在 d3.js 中制作分组压缩圆图?
- python - 除非必要,否则如何避免使用 conda-forge 包?
- javascript - 使用 CSS 规则设置所有元素的背景颜色,除了那些部分透明的元素
- php - 检查对象中的任何属性是否为空
- docker - Kubernetes Nginx 端口 80 在公共 IP 地址上不可用(仅私有地址)
- pandas - 熊猫:用条件连接行