Ir ao conteúdo
  • Cadastre-se

Por Que o pascal arredonda o resultado?


JBraga

Posts recomendados

O resultado sempre aparece arrendondado, por ex. faltou 3,42 arredonda para 5,00. Que estrutura encaixo para o valor aparecer exato.

Caso precisem a estrutura está abaixo:

Não prestem atenção à estrutura, sou iniciante e estou apenas treinando.

// Auditoria Caixa: Peça ao usuário que informe o troco. Avise-o para fechar logo o caixa.
// Logo após informar o fechamento de caixa.
// Peça também que informe as retiradas e entradas do caixa e o que foi vendido em cartões de Crédito e Débito.
// Após fale para o usuário informar quanto foi vendido de cartão da Maquineta, Oi, Orelhões, Chips.
// Se possível crie também um algorítmo para contar o troco, de diversas formas.

Program Audit_caixa;
var
troco, din, mapa_caixa, ret, Ent, VenCart, CartMaq, CartOi, CarOr, Chip, auditor: Real;
Begin
Writeln ('Informe o troco: ');
read (troco);
Writeln('');
Writeln ('Feche logo o caixa no SoftPharma, antes que chegue um cliente!!');
Writeln('');
writeln ('Informe o mapa do caixa: ');
read (mapa_caixa);
Writeln ('Informe a soma de dinheiro fora do caixa: ');
read (din);
Writeln ('Informe a soma das retiradas do caixa: ');
read (ret);
Writeln ('Informe a soma das entradas do caixa: ');
read (Ent);
Writeln ('Informe a soma de todas vendas de cartões de crédito e débito: ');
read (VenCart);
Write ('Informe a soma das vendas de cartões da Maquineta: ');
read (CartMaq);
Write ('Informe a soma das vendas OI e Brt: ');
read (CartOi);
Write ('Informe a soma das vendas dos cartões de Orelhão: ');
read (CarOr);
Write ('Informe a soma das vendas dos chips das operadoras: ');
read (Chip);

// Arrumar //

auditor:= ((troco+din+ret+VenCart)-(Ent+CartMaq+CartOi+CarOr+chip))-mapa_caixa;
writeln ('O Resultado do Caixa foi: ',auditor);

End.

Link para o comentário
Compartilhar em outros sites




Program Audit_caixa;
var
troco, din, mapa_caixa, ret, Ent, VenCart, CartMaq, CartOi, CarOr, Chip, auditor: Real;
Begin
Writeln ('Informe o troco: ');
readln (troco);
Writeln;
Writeln ('Feche logo o caixa no SoftPharma, antes que chegue um cliente!!');
Writeln;
write ('Informe o mapa do caixa: ');
readln (mapa_caixa);
Write ('Informe a soma de dinheiro fora do caixa: ');
readln (din);
Write ('Informe a soma das retiradas do caixa: ');
readln (ret);
Write ('Informe a soma das entradas do caixa: ');
readln (Ent);
Write ('Informe a soma de todas vendas de cartões de crédito e débito: ');
readln (VenCart);
Write ('Informe a soma das vendas de cartões da Maquineta: ');
readln (CartMaq);
Write ('Informe a soma das vendas OI e Brt: ');
readln (CartOi);
Write ('Informe a soma das vendas dos cartões de Orelhão: ');
readln (CarOr);
Write ('Informe a soma das vendas dos chips das operadoras: ');
readln (Chip);


auditor:= ((troco+din+ret+VenCart)-(Ent+CartMaq+CartOi+CarOr+chip))-mapa_caixa;
writeln ('O Resultado do Caixa foi: ',auditor:0:2,' reais.');

Olha se é isso aí. =D

Como você declarou as variáveis como "real", quando você for escrever ela, tem que usar um arredondamento de casas. Logo após o auditor, usei o :0:2.

E como você está trabalhando com dinheiro, ele arredonda pra 2 casa após a virgula.

Link para o comentário
Compartilhar em outros sites




Program Audit_caixa;
var
troco, din, mapa_caixa, ret, Ent, VenCart, CartMaq, CartOi, CarOr, Chip, auditor: Real;
Begin
Writeln ('Informe o troco: ');
readln (troco);
Writeln;
Writeln ('Feche logo o caixa no SoftPharma, antes que chegue um cliente!!');
Writeln;
write ('Informe o mapa do caixa: ');
readln (mapa_caixa);
Write ('Informe a soma de dinheiro fora do caixa: ');
readln (din);
Write ('Informe a soma das retiradas do caixa: ');
readln (ret);
Write ('Informe a soma das entradas do caixa: ');
readln (Ent);
Write ('Informe a soma de todas vendas de cartões de crédito e débito: ');
readln (VenCart);
Write ('Informe a soma das vendas de cartões da Maquineta: ');
readln (CartMaq);
Write ('Informe a soma das vendas OI e Brt: ');
readln (CartOi);
Write ('Informe a soma das vendas dos cartões de Orelhão: ');
readln (CarOr);
Write ('Informe a soma das vendas dos chips das operadoras: ');
readln (Chip);


auditor:= ((troco+din+ret+VenCart)-(Ent+CartMaq+CartOi+CarOr+chip))-mapa_caixa;
writeln ('O Resultado do Caixa foi: ',auditor:0:2,' reais.');

Olha se é isso aí. =D

Como você declarou as variáveis como "real", quando você for escrever ela, tem que usar um arredondamento de casas. Logo após o auditor, usei o :0:2.

E como você está trabalhando com dinheiro, ele arredonda pra 2 casa após a virgula.

Já melhorou.. com a dica das duas casas decimais entretanto, continua arrendondando. Vou dar uma revisada na expressão.

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!