vb.net - 舍入数字:如果数字更接近 100,则向下舍入到最接近的 250,否则向上舍入到最接近的 250
问题描述
我正在为整个整数做一个舍入代码。它已经在努力四舍五入到最近的250
.
Math.round(FormatNumber(CType(txt_input.Text, Decimal), 0) / 250) * 250
然而,这不是我需要的。相反,我需要相应地向上/向下舍入:
如果 number 小于100
,我需要向下舍入到最近的250
else 向上舍入到最近的250
。
例子:
17541 = 17500
2101 = 2250
7499 = 7500
7099 = 7000
我应该如何使用Math.Floor()
或Math.Ceiling()
相应地使用应用程序?
解决方案
你可以检查是否N Mod 250
是< 100
.
如果是,则减去余数,否则加上250
减去余数:
Dim n1 As Integer = 17541
Dim roundToValue As Integer = 250
Dim n1Remainder As Integer = n1 Mod roundToValue
Dim n2 As Integer = If(n1Remainder < 100, n1 - n1Remainder, n1 - n1Remainder + roundToValue)
'Or
'Dim n2 As Integer = (n1 - n1Remainder) + If(n1Remainder < 100, 0, roundToValue)
2101 -> 2250
7499 -> 7500
17541 -> 17500
推荐阅读
- python - 使用 Cedilla Delimer(Ç) 编写文本文件 - 非键盘可打印字符
- r - 我可以在 ggplot2 中使用 Annotate 来填充我的小提琴图吗?
- python-sphinx - sphinx + Breath + doxygen: .. doxygendefine:: 仅适用于头文件
- php - 通过仅使用用户名进行比较从表中获取数据
- asp.net - 从 SQL Server 中的存储过程调用 Web 服务时,客户端证书凭据未被识别错误
- reactjs - 我尝试显示 PDF,但我总是看到一个空白页面
- python - 使用 python selenium 迭代谷歌搜索结果
- scala - 如何在 spark scala 中使用子查询创建列表达式
- python - 字母列表的组合
- python - importefficientnet.keras as efn - AttributeError: module 'keras.utils' has no attribute 'generic_utils'