我正在开发一种 C++ 算法,给定一个浮点数作为输入,它会返回最接近以 50 结尾的数字的值。抱歉,我不知道如何更好地解释它。举个例子,我的意思是,我需要这些数字:50、150、250、350、450、550 等。
换句话说,如果输入值介于 之间,[1050, 1100)
则返回 1050,但如果输入值介于 之间[1100, 1150]
,则返回 1150。
所以,这是我的算法,仅在输入值等于或大于 1000.0 时才有效:
- 将输入值除以 100.0。
- 取小数部分
- 如果分数部分大于或等于 0.0 且小于 0.5,则整数部分加 1。
- 整数部分乘以 100。
- 结果加上 50。
当输入为701.272时,它返回850.0,但它应该返回750.0。
如果输入数字小于 1000,则问题可能是除以 100 并乘以 100。
我该如何修复这个算法?