Вверх ↑
Ответов: 9906
Рейтинг: 351
#1: 2013-01-24 07:30:30 ЛС | профиль | цитата
У себя я Kol-ы напильником подпилил.

#pas
//[function Str2Double]
function Str2Double( const S: String ): Double;
var I: Integer;
M, Pt: Boolean;
D: Double;
Ex: Integer;
begin
Result := 0.0;
if S = '' then Exit;
M := FALSE;
I := 1;
if S[ 1 ] = '-' then
begin
M := TRUE;
Inc( I );
end;
if S[ 1 ] = '+' then Inc( I ); //+добавил Галков
Pt := FALSE;
D := 1.0;
while I <= Length( S ) do
begin
case S[ I ] of
'.': if not Pt then Pt := TRUE else break;
'0'..'9': if not Pt then
Result := Result * 10.0 + Integer( S[ I ] ) - Integer( '0' )
else
begin
D := D * 0.1;
Result := Result + (Integer( S[ I ] ) - Integer( '0' )) * D;
end;
'e', 'E': begin
Ex := Str2Int( CopyEnd( S, I + 1 ) );
Result := Result * IntPower( 10.0, Ex );
break;
end;
else break; //+добавил Галков
end;
Inc( I );
end;
if M then
Result := -Result;
end;

чего и всем советую
карма: 9

0