Вниз
Скачать: 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.015 c
14-19784
Wonder
2003-03-19 15:30
2003.04.07
Началось :(


4-19921
Павел
2003-02-04 09:15
2003.04.07
Запрет на сворачивание


1-19541
electric
2003-03-26 15:10
2003.04.07
запись переменной типа StringList в типизированный файл


3-19452
БАА
2003-03-15 17:50
2003.04.07
Выборка единственной строки из многих....


1-19607
Danger
2003-03-27 01:10
2003.04.07
Как определить ItemIndex предыдущего элемента сombobox???




   Наверх