Duda acerca de programa en pascal (Sencillo)

SniperWoolf

Hola, acabo de empezar Ingenieria Informatica en la autonoma y tengo unas practicas de programacion sobre Pascal. Y tengo una pregunta. En una de las practicas, tengo que diseñar un programa en pascal sencillo que pida al usuario un articulo, su coste, el iva, y lo calcule.

Entonces he diseñado este programa:

program ejercicio5 (input,output);

const
articulo='Introduzca el nombre del articulo: ';
precio='Introduzca el precio de cada ' ;
cantidad='Introduzca la cantidad de ';
iva='Introduzca el IVA';

var
articulo_in : string[128];
precio_in, cantidad_in, iva_in : integer;
precio_crudo : integer;
precio_iva : single;
precio_final : single;

begin

    writeln(articulo);
    readln(articulo_in);
    writeln(precio, articulo_in);
    readln(precio_in);
    writeln(cantidad, articulo_in);
    readln(cantidad_in);
    writeln(iva);
    readln(iva_in);

    precio_crudo:=precio_in*cantidad_in;
    precio_iva:=(precio_crudo/100)*iva_in;
    precio_final:=precio_crudo+precio_iva;

    writeln();
    writeln('Precio Final');
    writeln();
    writeln(articulo_in);
    writeln(precio_in, ' x ', cantidad_in, '..........', precio_crudo);
    writeln('IVA (%',iva_in, ')', '..........', precio_iva);
    writeln('TOTAL:       ...............');
    writeln('            ', precio_final);

end.

Y tengo una pequeña duda.. El iva, al meterlo con single me sale con decimales, hasta aqui correcto.. pero, como puedo delimitar que me salga solo con 2 decimales? xq aparecen como 8, y lo mismo con el precio_final.

Ademas me acabo de dar cuenta que el precio_in tmb deberia usar single porque si el precio es con decimales, daria error.

Mi pregunta es, hay alguna forma de delimitar la salida con solo 2 decimales? O como lo puedo hacer para que no me muestren 8 decimales?

Gracias, un saludo

Edit, ya he encontrado la solucion! Luego la posteare :)

8 días después
elhamo

Oki!

De todas formas, F5 autónoma :P

Soltrac

#1 en pascal no lo se, pero en muchos lenguajes de programación hay una función "format" para que puedas formatear los datos de salida.

Por ejemplo, en VB, C# y demás .NET es Format(Variable, "0.00")

m0rG

En Pascal es muy sencillo representar números con la precisión que se quiera.En el write/writeln si tu variable se llama x por ejemplo pones:

writeln(',x:8:2,');

Donde el 8 es el número de cifras de la parte entera del número y el 2 los decimales.La sintaxis puede que no esté bien,pero la idea creo que se entiende xD.

B

con x:2 creo recordar que tmb funciona

Usuarios habituales