> Olá,
>
> Gostaria de uma grande ajuda.
> Estou desenvolvendo um função extendida para Retornar Extenso. No
> entando eu preciso converter um número (10^61)-1 em 9 seguido de 60 noves
> (é um número muito grande, seria
> 9999999999999999999999999999999999999999999999999999999999999).
> O problema é que quando uso as funções do delphi sempre recebo um valor
> em notação científica (não serve para o propósito). Gostaria muito que me
> ajudassem.
> Já procurei na net ? na verdade não sabia direito o que procurar ? mas
> não encontrei o que queria.
A limitação neste caso não é na conversão para string, uma vez que a função
abaixo serviria para isto. Mas no Delphi nenhum tipo de dado para números
reais suportam mais que 20 dígitos significativos. Na prática comprovei que
funciona bem até 18 casas após o separador decimal, se você usar o tipo
Extended. A função FloatToStr padrão do Delphi trabalha com 15 casas apenas,
então com esta que escrevi abaixo você consegue chegar até 18 casas (mais 3
casas).
function FloatToStrEx(Value: Extended; const Decimals: Integer): string;
var
I: Integer;
begin
Result := IntToStr(Trunc(Value));
if Decimals > 0 then
begin
Result := Result + DecimalSeparator;
for I := 1 to Decimals do
begin
Value := Frac(Value);
Value := Value * 10;
Result := Result + IntToStr(Trunc(Value));
end;
end;
end;
Exemplo:
var
X: Extended;
begin
X := 1 / 3;
ShowMessage(FloatToStr(X));
end;
Atenciosamente.
Daniel P. Guimarães
Tecnobyte Informática
www.tecnobyte.com.br
--
<<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>
Para ver as mensagens antigas, acesse:
http://br.groups.yahoo.com/group/delphi-br/messages
Para falar com o moderador, envie um e-mail para:
[EMAIL PROTECTED] ou [EMAIL PROTECTED]
Links do Yahoo! Grupos
<*> Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/delphi-br/
<*> Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]
<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html