如何将数字四舍五入到最接近的 .45 或 .95?
How to round numbers to the closest .45 or .95?
在 PHP 中,我想根据提供的值对数字进行舍入。
- 如果值大于 30,我想将数字四舍五入到最接近的 4.95 或 9.95
- 如果值介于 10 和 30 之间,我想将数字舍入到最接近的 2.45、4.95、7.45 或 9.95
- 如果值小于 10,我想将数字四舍五入到最接近的 .45 或 .95
- 如果值小于 1,我想将数字四舍五入到最接近的 .05 或 .10
但是该值不能为 0 或小于零,并且在接近于零时始终向上舍入(因此它不会变为零,而是变为 0.05,例如)。
我有这个代码可以四舍五入到最接近的 4.95 或 9.95:
(ROUND($number / 5, 0) * 5) - 0.05
我有这段代码可以四舍五入到最接近的 .45 或 .95:
(ROUND($number * 2, 0) / 2) - 0.05
虽然我真的不知道如何实现上述目标。有人知道吗?
如果我很了解你的问题,这个解决方案应该有效:
if ($value > 30)
$roudedValue = 5 * round($value / 5);
else if ($value >= 10)
$roudedValue = 2.5 * round($value / 2.5);
else if ($value > 1)
$roudedValue = 0.5 * round($value / 0.5);
else
$roudedValue = 0.1 * round($value / 0.1);
在 PHP 中,我想根据提供的值对数字进行舍入。
- 如果值大于 30,我想将数字四舍五入到最接近的 4.95 或 9.95
- 如果值介于 10 和 30 之间,我想将数字舍入到最接近的 2.45、4.95、7.45 或 9.95
- 如果值小于 10,我想将数字四舍五入到最接近的 .45 或 .95
- 如果值小于 1,我想将数字四舍五入到最接近的 .05 或 .10
但是该值不能为 0 或小于零,并且在接近于零时始终向上舍入(因此它不会变为零,而是变为 0.05,例如)。
我有这个代码可以四舍五入到最接近的 4.95 或 9.95:
(ROUND($number / 5, 0) * 5) - 0.05
我有这段代码可以四舍五入到最接近的 .45 或 .95:
(ROUND($number * 2, 0) / 2) - 0.05
虽然我真的不知道如何实现上述目标。有人知道吗?
如果我很了解你的问题,这个解决方案应该有效:
if ($value > 30)
$roudedValue = 5 * round($value / 5);
else if ($value >= 10)
$roudedValue = 2.5 * round($value / 2.5);
else if ($value > 1)
$roudedValue = 0.5 * round($value / 0.5);
else
$roudedValue = 0.1 * round($value / 0.1);