Код на PHP для функции потолка - PullRequest
1 голос
/ 18 сентября 2008

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

Ответы [ 3 ]

8 голосов
/ 10 апреля 2012

Это должен быть ответ, из комментариев 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
7 голосов
/ 18 сентября 2008

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

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

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

Надеюсь, что поможет

2 голосов
/ 18 сентября 2008

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

...