Итак, у меня есть этот класс, который ценит цифры. Например, AbbreviateNum::convert(1178);
округляет и превращает его в 1.18K
.Аббревиатура номер Функция не выводит отрицательное значение
Это работает, как должно, красиво. Однако я не могу понять, как выводить отрицательные числа. Если я запустил AbbreviateNum::convert(-1178);
, он выдаст тот же ответ 1.18K
. Без отрицательного индикатора.
Любые советы о том, как я это исправить?
<?php
namespace App\Helpers;
class AbbreviateNum
{
/**
* Abbreviate long numbers
*
* @return Response
*/
public static function convert($num)
{
$num = preg_replace('/[^0-9]/', '', $num);
$sizes = array("", "K", "M");
if ($num == 0) return(0);
else return (round($num/pow(1000, ($i = floor(log($num, 1000)))), 2) . $sizes[$i]);
}
}
Вашего регулярное выражение удаляет знак ... (а также любую десятичную точку) – rjdown
Почему бы не вычислить его с помощью абсолютного значения а затем, если исходный ввод меньше 0, верните '0 - $ output'? –