【问题标题】:PHP Rounding up to specific set of numbers [duplicate]PHP四舍五入到特定的数字集[重复]
【发布时间】:2014-11-17 00:37:31
【问题描述】:

我只想将任何给定的数字四舍五入到最接近的一组特定值。值为 5,10,20,25,50,100

因此,如果给定数字为 2,则四舍五入为 5。如果为 71.6,则四舍五入为 50,如果为 250,则四舍五入为 100

任何人都可以给我一个线索如何做到这一点? 非常感谢!

【问题讨论】:

标签: php


【解决方案1】:

使用循环:

$numbers = array(5, 10, 20, 25, 50, 100);
$result = $input;
foreach ($numbers as $n) {
    if ($input < $n) {
        $result = $n;
        break;
    }
}

【讨论】:

  • 不正确的结果(例如50以下的任何数字)
  • 已修复。我不知道为什么我认为我必须反转数组。
  • 感谢@barmar,但输入总是四舍五入。如果给定的输入是 13,输出将是 20 而不是 10
  • 这就是你在问题中所说的:我想向上任何给定的数字
【解决方案2】:

我在这里找到了答案:Find number which is greater than or equal to N in an array。感谢@kAlmAcetA

function closest($array, $number) {

    sort($array);
    foreach ($array as $a) {
        if ($a >= $number) return $a;
    }
    return end($array) // or return NULL;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-23
    • 1970-01-01
    • 2017-07-18
    • 1970-01-01
    • 2015-11-12
    • 1970-01-01
    相关资源
    最近更新 更多