Как напечатать номера научных обозначений в произвольном формате с использованием PHP?

У меня есть набор научных обозначений номеров (Икс), Показано в колонка 1 в таблице ниже. Я пытаюсь напечатать числа в произвольном формате, как показано на колонка 3 используя PHP. Как я могу это сделать? Я старался printf("%.0e", $x); а также print sprintf("%.0e", $x);, но получил результат, как показано в колонка 2.

Пожалуйста, кто-нибудь, помогите мне решить проблему.

Номер научной нотации

-2

Решение

Фактически вывод был сгенерирован сервером NCBI BLAST с использованием сценария CGI. После многих испытаний я нашел новый метод решения проблемы. Но я все еще удивлен … есть ли решение с использованием Perl / CGI.

<?php
function efmt($Hsp_evalue) {
$x = (float)sprintf("%.1e", $Hsp_evalue);
if (preg_match("/e-/i", $x)) {
$y = explode("E-", $x);
if ($y[1] < 10) return round($y[0]) . "e-0" . $y[1];
else return round($y[0]) . "e-" . $y[1];
} else {
if (preg_match("/\./", $x)) {
if ($x * 1000 < 1) return round($x * 10000) . "e-04";
else return $x;
} else
return $x . ".0";
}
}

print efmt("9.58544"); // Output: 9.6
?>
0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector