Valor Decimal de Um Double.
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?
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
Curtidas 0
Respostas
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.
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
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
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
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