Вниз
Скачать: CL | DM;

Экспонента и мантисса   Найти похожие ветки 

← →
alxx ©   (2003-03-27 10:10) [0]

Есть real число 0.01234, которое представляется как 1.234E-2. Как получить 1.234 и -2?
Подозреваю, что вопрос туповат, но как-то хотелось бы попроще и без извращений. Пробовал функцию frExp - какую-то фигню получил.


← →
MBo ©   (2003-03-27 10:14) [1]

log10


← →
alxx ©   (2003-03-27 10:18) [2]

E:=log10(X);
M:=X/Power(10,E);

Так?


← →
REA ©   (2003-03-27 10:19) [3]

Может подойдет?

Separates the Mantissa and Exponent of X
Unit Math
Delphi syntax:
procedure Frexp(const X: Extended; var Mantissa: Extended; var Exponent: Integer) register;


← →
alxx ©   (2003-03-27 10:23) [4]

А попробовать не хотите?

Если сделать так: Frexp(1,M,E);
получаем M=0.5, E=1

?????????


← →
REA ©   (2003-03-27 10:32) [5]

Ну не нравится такое, тогда
Unit SysUtils
procedure FloatToDecimal(var DecVal: TFloatRec; const Value; ValueType: TFloatValue; Precision, Decimals: Integer);

type TFloatRec = record
Exponent: Smallint;
Negative: Boolean;
Digits: array[0..20] of Char;
end;


← →
Dikobrazz ©   (2003-03-27 10:45) [6]

Есть функция FloatToDecimal, которая возвращает отдельно мантису и экспоненту в специальной структуре.
procedure Test;
var
X: Extended;
FRec: TFloatRec;
A,B: string;
begin
X:=0.012345;
FloatToDecimal(FRec,X,fvExtended,10,10);
A:=FRec.Digits;
B:=IntToStr(FRec.Exponent);
ShowMessage(A+";"+B);
end;


← →
MBo ©   (2003-03-28 13:46) [7]

var d:double;
m:extended;
e:integer;
begin
d:=1.234E-2;

E:=Floor(Log10(Abs(d)));
M:=d/IntPower(10,E);

label1.caption:=format("%8.5f %d",[M,E]);

Frexp все верно дает, только не в десятичной системе, а в двоичной, соответственно машинному представлению.
Единица хранится как 0.5*2^1



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.016 c
3-19487
Zarba
2003-03-19 17:29
2003.04.07
упаковка таблицы Paradox


6-19712
Семен Семеныч
2003-02-13 10:37
2003.04.07
Отцы помогите, ...ПЕРЕГРУЗИТЬ СЕРВАК... это не вирь :-))


7-19882
Незнайка 2
2003-02-12 15:20
2003.04.07
OCX


1-19697
SZap
2003-03-26 12:57
2003.04.07
Является ли строка числом


1-19620
апельсин==
2003-03-25 13:45
2003.04.07
подскажите как определить код символа табуляции в тексте




   Наверх