В то время как функции здесь работали, мне нужно было значащие цифры для очень маленьких чисел (сравнивая криптовалюту с низким значением и биткойны).
Ответ на Форматирование числа в N значащих цифр в PHP сработало, несколько, хотя очень маленькие числа отображаются PHP в научной нотации, что затрудняет их чтение некоторыми людьми.
Я пытался использоватьnumber_format, хотя для этого требуется определенное количество цифр после десятичной дроби, которое разбивает «значительную» часть числа (если введено заданное число) и иногда возвращает 0 (для чисел, меньших, чем заданное число).
Решение состояло в том, чтобы изменить функцию, чтобы она идентифицировала действительно маленькие числа, а затем использовать для них number_format - принимая количество цифр научных обозначений в качестве числа цифр для number_format:
function roundRate($rate, $digits)
{
$mod = pow(10, intval(round(log10($rate))));
$mod = $mod / pow(10, $digits);
$answer = ((int)($rate / $mod)) * $mod;
$small = strstr($answer,"-");
if($small)
{
$answer = number_format($answer,str_replace("-","",$small));
}
return $answer;
}
ThisФункция сохраняет значащие цифры, а также представляет цифры в удобном для чтения формате для всех.(Я знаю, что это не самое лучшее для научных людей, и даже не самые привлекательные цифры, но в целом это лучшее решение для того, что нам нужно.)