Нужно сократить большие числа до к
, М
и т.д.
Например:
1000000 = 1М
500000 = 500к
По сути вот готовый вариант реализации, но непойму как сделать чтобы сократить числа со знаком "минус"? Например:
-1000000 = -1М
-500000 = -500к
Прошу помощи.
function number_name( $number )
{
if( !is_numeric( $number ) ) {
return $number;
}
$digits = ceil( log10( $number ) ) -4 ; //число знаков минус 4
$mult = pow( 10, $digits ) ; //множитель для оставления первых 4 знаков
$number = round( $number / $mult ) ; //оставили 4 знака
while( ( $number > 1000 ) || ( $digits % 3 != 0 ) ) {
$number /= 10 ;
$digits += 1 ;
}
$names = array( 0 => "",
3 => " к",
6 => " М",
9 => " Г",
12 => " Т"); //число нулей => название
return $number.$names[ $digits ] ;
}
function number_name( $number )
{
if( !is_numeric( $number ) ) {
return $number;
}
$isNegative = ($number < 0); //определение отрицательного числа
if($isNegative) $number *= -1; //приведение к абсолютному
$digits = ceil( log10( $number ) ) -4 ; //число знаков минус 4
$mult = pow( 10, $digits ) ; //множитель для оставления первых 4 знаков
$number = round( $number / $mult ) ; //оставили 4 знака
while( ( $number > 1000 ) || ( $digits % 3 != 0 ) ) {
$number /= 10 ;
$digits += 1 ;
}
$names = array( 0 => "",
3 => " к",
6 => " М",
9 => " Г",
12 => " Т"); //число нулей => название
if($isNegative) $number *= -1; //возвращение к отрицательному, если нужно
return $number.$names[ $digits ] ;
}
Добавил только обработку отрицательных, остальное оставил Ваше.
Я бы сделал чуть проще (без возведения в степень и логарифмов):
function number_name($number)
{
$count = array("", "k", "M", "G", "T");
$i = 0;
while (abs($number) > 1000) {
$number /= 1000;
$i++;
}
return $number.$count[$i];
}
echo number_name(5)."\n";
echo number_name(5000)."\n";
echo number_name(-5000)."\n";
echo number_name(5000000)."\n";
echo number_name(5000000000)."\n";
echo number_name(5000000000000);
Вывод:
5
5k
-5k
5M
5G
5T
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Цель: создать функцию позволяющую добавлять объявления на сайт с несколькими изображениями, и выводить их на определенных страницах
У меня есть класс, часть функционала в котором реализует traitЧтобы все протестировать необходимо данный trait подменить на свой (тестовый)
В общем, у меня есть форма, я аяксом передаю данные с формы в файлик пхп и из него в бд, потом есть еще один файлик пхп который забирает данные...
Хочу напрямую обращаться к элементам интерфейса, содержащихся в Ui MainWindowКак это реализовать, не используя сигналы и слоты? Мне нужно передать...