Код на PHP для функции потолка

Кто-нибудь когда-нибудь программировал функцию PHP (или Perl) для получения максимального значения в стиле Excel?

3 ответа

Это должен быть ответ, из комментариев php.net:

// MS Excel function: Ceiling( number, significance ) 


// duplicates m$ excel's ceiling function
if( !function_exists('ceiling') )
{
    function ceiling($number, $significance = 1)
    {
        return ( is_numeric($number) && is_numeric($significance) ) ? (ceil($number/$significance)*$significance) : false;
    }
}

echo ceiling(0, 1000);     // 0
echo ceiling(1, 1);        // 1000
echo ceiling(1001, 1000);  // 2000
echo ceiling(1.27, 0.05);  // 1.30

"Функция потолка в Microsoft Excel не соответствует математическому определению, а скорее как оператор (int) в C, она представляет собой смесь функции пола и потолка: для x ≥ 0 она возвращает потолок (x), а для x < 0 он возвращает floor(x). Это перешло к формату файла Office Open XML. Например, CEILING(-4.5) возвращает -5. Математическую функцию потолка можно эмулировать в Excel с помощью формулы "-INT(-value)) " (обратите внимание, что это не общее правило, так как оно зависит от функции INT в Excel, которая ведет себя не так, как большинство языков программирования)." - из википедии

Если встроенная функция ceil в php работает неправильно, вы можете создать новую функцию, например

function excel_ceil($num){
    return ($num>0)?ceil($num):floor($num);
}

надеюсь, это поможет

Извините, не совсем понятно, что такое "стиль Excel", но в PHP есть функция ceil.

Другие вопросы по тегам