Кто-нибудь когда-либо программировал функцию PHP (или Perl), чтобы получить максимальное значение в стиле Excel?
Код на PHP для функции потолка
Ответы (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
round()
с PHP_ROUND_HALF_UP
вместо ceil()
. Обратите внимание, что round()
также имеет параметр точности, хотя он может разрешать округление только до степени 10.
- person Brilliand; 01.07.2013
"Функция потолка Microsoft Excel не следует математическому определению, а скорее, как и оператор (int) в C, представляет собой смесь функций пола и потолка: для x ≥ 0 она возвращает потолок(x), а для x ‹ 0 возвращает пол (x). Это соответствует формату файла Office Open XML. Например, ПОТОЛОК (-4,5) возвращает -5. Математическая функция потолка может быть эмулирована в Excel с помощью формулы "-INT (-значение)" (обратите внимание, что это не общее правило, так как оно зависит от функции Excel INT, которая ведет себя не так, как в большинстве языков программирования)." - из википедия
Если встроенная в php функция ceil работает неправильно, вы можете создать новую функцию, например
function excel_ceil($num){
return ($num>0)?ceil($num):floor($num);
}
надеюсь, это поможет
Ceiling( number, significance )
- person Superbiji; 10.04.2012
Извините, не совсем понятно, что такое "стиль Excel", но в PHP есть функция ceil.