2017-01-13 4 views
0

Как извлечь экспонента и знак из «научной» нотации?Получить экспоненту из научной нотации

Если мы печатаем двойное значение с Е ("% Л.Ф.% е") он показывает номинальную напр .:

normal scientific 
    ------ ---------- 
    -888.3 -8.88e2  
    1.23  1.23e0  
    3.001 3.1e-1 

Решение указал в How to get Exponent of Scientific Notation in Matlab только

x = floor(log10(N)) 

работает для положительных значений N. С -N показывает -nan (ind). Очевидно, что Log10() с отрицательным значением не допускается.

+0

Не могли бы вы просто использовать 'abs'? – qxz

+0

да, но тогда я не прав –

+0

Это [это] (http://stackoverflow.com/questions/15685181/how-to-get-the-sign-mantissa-and-exponent-of-a-floating- point-number), что вы ищете? – SamVanDonut

ответ

2

Вы не заботитесь о знаке числа, вам нужно показатель только, так что вы можете избавиться от знака безопасно:

log10(abs(N)) 

Где abs возвращает абсолютное значение N, который всегда неотрицателен и поэтому может использоваться в качестве аргумента для log10.

+0

Мне тоже нужен знак. Ex -3 или 3 - большая разница –

+0

@TomTom, я отвечаю об удалении знака _the number_, а не экспонента. – ForceBru

Смежные вопросы