c# - 舍入双不正确的输出
问题描述
我正在尝试对数字进行四舍五入,但预期的输出不正确。这是我尝试过的:
var percent = Math.Round(1.13451, 0);
上面的返回值1
,但如果第三个数字小于 5,我希望它返回1.13
。如果它 >= 5(第三个数字),我想得到类似1.135
. 我确信这是我想念的简单的东西,但不确定。
解决方案
看来您正在引起混淆,因为您使用“舍入”一词来描述实际上不是舍入的操作。
我再次阅读了您的描述,我可以看到您正在尝试将您的值截断为不超过该值的 0.005 的最高离散增量。
您可以按如下方式执行此操作:
var percent = Math.Floor(200.0 * x) / 200.0;
或者,如果你想让发生的事情更明显,这本质上是一样的:
var increment = 0.005
var percent = Math.Floor(x / increment) * increment;
推荐阅读
- python-3.x - 如何在python中使用套接字发送响应代码301?
- html - 将子元素设置为父元素的 100% 宽度
- wso2 - 无法检索应用程序并且无法为 API 创建订阅
- python - 图像直方图:IndexError:索引 4 超出轴 1 的范围,大小为 4
- angular - 如何动态添加到 ionic 应用程序的 CDN 链接
- azure - Tomcat 的 Azure SSO 配置
- c# - 为什么当我在 Elapsed 函数中更改间隔时 C# Timer 会重新启动
- r - 显示单个变量的 ggplot 方面
- java - 使用 Comparator 根据另一个数组(不同长度)对数组进行排序,结果顺序错误
- json-server - json-server --watch db.json in error TypeError: lodash.runInContext is not a function