Fórum Como colocar quot;,quot; para centavos em um numero inteir #173769
07/08/2003
0
Obrigado a todos
JC
Jc
Curtir tópico
+ 0Posts
07/08/2003
Aroldo Zanela
Você deve definir uma variável de ponto flutuante e dividir o valor por 100. Exemplo:
var nValor: Currency; begin nValor := 1000/100; end;
Gostei + 0
08/08/2003
Bacalhau
1. Se o resultado é para ficar numa tabela, vai às propriedades do campo e define o ´Displayformat´ = ´#.0,00´. A aparência do número fica com duas casas decimais.
2. Se pretendes armazenar o resultado numa string, sugiro a função ´StrTofloatF´, que permite várias configurações e entre elas o número decasas decimais.
De qualquer modo, a tua pergunta é colocar centavos num INTEIRO. Cuidado, não dá! Tens de converter para um float.
Espero ter ajudado. Se não ajudei, especifica um pouco mais
Abraço do bacalhau
Gostei + 0
08/08/2003
Bacalhau
Tive esse problema aqui na Europa com a adesão ao Euro. Quando chegaram as necessidades de conversão de moeda (o escudo) e arredondamento a duas casas decimais. A solução que implementei (um pouco deselegante mas que funciona foi a seguinte):
Function Euro(valor : currency) : currency;
var r : currency;
r2 : currency;
s, conversor : string;
begin
R := VALOR * 1000;
r2 := int(r);
r2 := R2 / 1000;
conversor := floattostr(r2 * 1000);
s := copy(conversor,length(floattostr(r2 * 1000)),1);
// ANULA A TERCEIRA CASA DECIMAL
if (s = ´5´) THEN r2 := r2 + 0.005;
if (s = ´6´) THEN r2 := r2 + 0.004;
if (s = ´7´) THEN r2 := r2 + 0.003;
if (s = ´8´) THEN r2 := r2 + 0.002;
if (s = ´9´) THEN r2 := r2 + 0.001;
if (s = ´4´) THEN r2 := r2 - 0.004;
if (s = ´3´) THEN r2 := r2 - 0.003;
if (s = ´2´) THEN r2 := r2 - 0.002;
if (s = ´1´) THEN r2 := r2 - 0.001;
Euro := r2;
end;
Abraço do bacalhau
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)