научная запись в нормальное десятичное преобразование выходного - PullRequest
0 голосов
/ 06 января 2019

Прежде всего, я много пытался найти точно такой же вопрос, но не смог. Были похожие решения и решения, которые выглядят неплохо, но не для меня.

В PHP я хочу преобразовать (или правильно распечатать) число на страницу с echo или чем-то подобным.

Числа ввода могут различаться следующим образом:

100000000

10

0,1

0,0000000001

100000000,0000000001

Они получены из базы данных MySQL. Формат поля double

Но, когда я пытаюсь echo эти числа, небольшое десятичное число печатается с научной нотацией

1E-11

Я обнаружил sprintf, number_format, stringfication, make (double) или (string) и т. Д., Но у них есть некоторые нежелательные функции, как показано ниже:

  1. округление числа
  2. избыточный 0 (нулевой) хвост: например, от 0,1 до 0,10000

Я просто хочу распечатать эти цифры КАК ЕСТЬ

и без лишних процессов. (например, преобразовать в десятичный формат с помощью number_format, затем сделать из него строку, а затем удалить нулевые хвосты)

Как мне это сделать?

1 Ответ

0 голосов
/ 06 января 2019

Я нашел способ сделать это сам и выкладываю быстрый ответ.

function realval($v) {
    $f = (string)number_format($v, 10, '.', ''); // 10000.0000010000
    if(strpos($f, '.') !== false) { // if it's a decimal (if not, print as is)
        $f = rtrim($f, "0"); // 10000.000001
        $f = rtrim($f, "."); // to prevent 10000. like things. 
    }
    return $f; // string format
}

Это делает то, что мне нужно. Я хотел более приличный способ сделать это, но пока не понял.

...