Valor Decimal de Um Double.

Delphi

05/12/2006

Preciso da parte inteira e da parte decimal de um Double :

A parte inteira já consegui usando Floor(Valor) agora preciso da parte decimal, estou usando Frac(Valor). Mas o resultado sempre retorna com 0 na frente. Exemplo : o Valoe é 1,5 então o resultado é 0,5.

Alguém já resolveu este problema alguma vez?


Raczy

Raczy

Curtidas 0

Respostas

Massuda

Massuda

05/12/2006

Explique melhor o que você quer. O ´zero na frente´ é porque Frac() retorna a parte fracionária do número.

Se você precisa do primeiro dígito depois da vírgula/ponto decimal, multiplique o resultado do Frac() por 10 e use Int() ou Trunc() para obter esse dígito.


GOSTEI 0
Raczy

Raczy

05/12/2006

Apenas multiplicar o resultado por 10 e depois usar Int ou Trunc não funciona, o valor pode ser 10.100 e o resultado seria apenas 1. Eu preciso de todo o valor decimal após a virgula, deve existir alguma função que faça isso. Alguma idéia?


GOSTEI 0
Massuda

Massuda

05/12/2006

Eu preciso de todo o valor decimal após a virgula
A única forma seria você formatar como string, usar Pos() para achar o ponto decimal, pegar a parte da string que te interessa e converter essa parte de novo para número.


GOSTEI 0
Marco Salles

Marco Salles

05/12/2006

[b:392e587a4c]massuda escreveu[/b:392e587a4c]
A única forma seria você formatar como string, usar Pos() para achar o ponto decimal, pegar a parte da string que te interessa e converter essa parte de novo para número.



é:::::::::

var valor:Double; partedecimal:string; begin valor:=StrtoFloat(edit1.Text); partedecimal:=copy(floattostr(valor),pos(decimalseparator,floattostr(valor))+1,length(floattostr(valor))); showmessage(partedecimal);



GOSTEI 0
POSTAR