Доброго времени суток. есть задача, чисто на размяться. Имеем массив из чисел, который берется из БД. Тип поляв БД стоит double. соотвественно любое число есть float. И не важно есть в нем точка, или нет. Вопрос. Необходимо вывести цисла(цены) с двумя последними остатками. То есть, если у нам 500 - то должно показываться 500.00, если у нас 4.99 - то должно так и показываться 4.99, нсли же у нас 20.1 - то должно показываться 20.10, если же у нас 20.05 - то должно опказываться 20.05. Интересен именно алгоритм. Кто располагает свободным временем и достаточным желанием... Спасибо.
У меня получилось вот такая функция.
public function currentPrice($number, $separator = '.', $modulo = '0', $currency = '$')
{
$separateNumber = explode($separator, $number);
$integer = $currency . $separateNumber[0]. $separator;
if(isset($separateNumber[1])){
$currentPrice = $integer .$number[1];
if(strlen($separateNumber[1]) == 1){
return $currentPrice . $modulo;
}else{
return $currentPrice;
}
}else{
return $integer . $modulo . $modulo;
}
}
ВО избежание очевидного вопроса - на is_int, is_float - проверить не могу. Ибо var_dump по всем числам возвращает float()