Fórum Valor Decimal de Um Double. #334189

05/12/2006

0

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

Responder

Posts

05/12/2006

Massuda

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.


Responder

Gostei + 0

05/12/2006

Raczy

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?


Responder

Gostei + 0

05/12/2006

Massuda

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.


Responder

Gostei + 0

05/12/2006

Marco Salles

[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);



Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar