Ayuda con uso de decimales

Iniciado por eliezeralpr, 26 Abril 2009, 19:31 PM

0 Miembros y 1 Visitante están viendo este tema.

eliezeralpr

Bien  tengo este programa que realize usando un manual basico de lenguaje C bueno no soy muy bueno en esto asi que , les pido ayuda.  quiero hacer que el usuario ingrese el (APR) Anual  y  que este no sea fijo .  Que pueda entrar distintos APR.  y no se como hacerlo intente  con  Decimal.Parse(Console.Readline());    pero no me funciono...

agradezco la ayuda Aqui esta lo que tengo hasta ahora:


using System;
namespace millon
{
    class Program
    {
        static void Main(string[] args)
        {
            string ou;
            do
            {
                //Declarar las variables a usar
                Console.Clear();
                double balance = 0;
                int anos = 0;
                //Encabezado....
                Console.ForegroundColor = ConsoleColor.Green;
                Console.WriteLine("|    Determinar los anos requeridos para llegar a ser millonario      |");
                Console.WriteLine("***********************************************************************");
                Console.WriteLine();
                Console.WriteLine("              *NOTA*                                                   ");
                Console.WriteLine("                    Calculo realizado utilizando:                      ");
                Console.WriteLine("                    Deposito Inicial : #,###,###,##                    ");
                Console.WriteLine("                    APR de 7% anual.                                   ");
                Console.WriteLine("                   --------------------------------                    ");
                Console.WriteLine("Entre la cantidad de deposito, luego presione 'Enter' para calcular.   ");
                Console.WriteLine("--------------------------------");
                //Entrada de Datos
                Console.WriteLine("Entre la cantidad del deposito:");//Entrar cantidad de balance
                balance = Int32.Parse(Console.ReadLine());
                Console.WriteLine("--------------------------------");

                //Loops para contar los anos ...
                while (balance < 1000000)
                {
                    balance = balance + (0.07 * balance);//calculo
                    anos = anos + 1;//counter           
                }

                //Salida . imprimir en pantalla la cantidad de anos necesarios ....
                Console.WriteLine(" En " + anos + " anos usted tendra la cantidad de $1 millon de dolares.");
                Console.WriteLine();
                Console.WriteLine("***********************************************************************");
                Console.WriteLine();
                Console.WriteLine("|           Desea salir del programa si o no ??  (S/N)                |");
                ou = Console.ReadLine();
            } while (ou == "n" || ou == "N");
        }
    }
}


Gracias de antemano...

armigerum.umbra

Me parece que no se hace de esa manera amigo, bueno al menos en java para leer un flujo de entrada, tienes que crear un flujo de datos, la verdad no se com se hace en C, solo en java... Eso seguro esta en google, deberias empezar a buscar ahi  :rolleyes:
saludos

eliezeralpr

#2
TU RESPUESTA ME CONFUNDE , YA QUE NO ME AYUDA EN NADA O NO CONTESTA MI PREGUNTA.  SE QUE EN JAVA HAY Q CREAR UN FJUJO DE DATOS.  PERO NO SE COMO SE HACE ESO EN C. ES POR ESO QUE ESTOY PREGUNTANDO EN ESTE FORO. SI  SUPIERA NO ESTARIA EN UN FORO PIDIENDO AYUDA.

NO PRETENDO QUE ME DIGAN LO QUE YA SE... LA PREGUNTA ES SI NO SE HACE ASI COMO SE HACE ?  ....  ALGUIEN SABE ?   O ME VAN A ENVIAR PARA GOOGLE? 

*A POCO CONOCIMIENTO SOLUCIONES RAPIDAS..(GOOGLE) . ¿ESTOY EN UN FORO DE ESTUDIANTES O DE PROGRAMADORES????.... 


Novlucker

Para empezar nadie esta obligado a responder, simplemente armigerum.umbra a hecho un comentario y tu respondes de ese modo  :¬¬

Si vas a trabajar con decimales, entonces no declares un entero (int) declara un double  :rolleyes:

Saludos
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

AntonioMeucci

Hola,
para leer de consola, es como estabas intentando, no sé que problema te dará, pero es correcto: Decimal interes = Decimal.Parse(Console.ReadLine());

De todos modos, como ha dicho Novlucker, igual es más cómodo trabajar con doblesdouble interes = double.Parse(Console.ReadLine())/100.0;

Tampoco hace falta el bucle, con unas pocas mates  :)double años = Math.Ceiling(Math.Log(1000000 / balance, 1 + interes));

Ahí habría que controlar que el balance introducido fuera mayor que 0, pero en tu código también, que si no se mete en un bucle infinito.