Десятичное в научное обозначение в сценарии perl - PullRequest
0 голосов
/ 20 ноября 2018

Мне нужно преобразовать decimal values в scientific conversion:

Код источника: \num{0.000002753}

Мой код (по ссылке в Интернете):

use Number::FormatEng qw(:all);
print format_eng(0.000002753); 
print "\n";

Конвертированный вывод: 2.753e-6

Однако мой Исключенный вывод: 2.75*10^{-6}

Может ли кто-нибудь предоставить способ решения этой проблемы.Заранее спасибо.

1 Ответ

0 голосов
/ 20 ноября 2018

Кредиты поступают на @ melpomene из комментариев на мой вопрос :

while($val=~m/\\num{([^{}]*)\}/g)
{
    my $nums = $1;
    my $vals = sprintf('%.2e', $nums) =~ s/[eE]([-+]?)0*(\d+)\z/*10^{$1$2}/r;

    print "OrgVals: $nums\t: ConvVals: $vals\n";
}

OrgVals: 0.000002753    : ConvVals: 2.75*10^{-6}
OrgVals: 0.000004784    : ConvVals: 4.78*10^{-6}
OrgVals: 0.000050934    : ConvVals: 5.09*10^{-5}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...