none
contador en c#

    Question

  • si veran estoy intentando hacer un contador que cuente de 500 en 500 es decir

    si el numero es 250 el valor sera 0

    si el numero es 550 el valor sera 500

    si el numero es 4585 el valor sera 4500

    pero no se me ocurre como hacer para contar de esa manera.. 

    debo ir incrementando de 500 en 500?

    si el valor pasa de 500 entonces el valor seria 500x1? como puedo identificar cuantas veces se ha pasado de 500

    gracias un saludo

    Sunday, August 26, 2012 6:01 PM

Answers

  • Realiza algo como esto

            static void Main(string[] args)
            {
                int x = 4585;
    
    
                if (x < 500)
                {
                    x = 0;
                    counter = 0;
                }
    
                else
                {
                    if (x == 500)
                    {
                        x = 500;
                        counter = 1;
                    }
    
    
                    else
                    {
                        int temp = x;
    
                        switch (x.ToString().Length)
                        {
                            case 3:
                                x = int.Parse((x.ToString().Substring(0, 1)) + "00");
                                break;
    
                            case 4:
                                x = int.Parse((x.ToString().Substring(0, 2)) + "00");
                                break;
    
                            case 5:
                                x = int.Parse((x.ToString().Substring(0, 3)) + "00");
                                break;
    
                            default:
                                break;
                        }
    
                        do
                        {
                            try
                            {
                                if (temp / 500 > 0)
                                {
                                    counter++;
                                }
    
                                temp -= 500;
                            }
                            catch (System.Exception)
                            {
                                break;
                            }
                        } while (temp > 0);
                    }
                }
            }
    


    Angel R. Jimenez G.
    Software Development
    Santo Domingo
    Republica Dominicana
    Blog

    Sunday, August 26, 2012 7:28 PM

All replies

  • si veran estoy intentando hacer un contador que cuente de 500 en 500 es decir

    si el numero es 250 el valor sera 0

    si el numero es 550 el valor sera 500

    si el numero es 4585 el valor sera 4500

    pero no se me ocurre como hacer para contar de esa manera.. 

    debo ir incrementando de 500 en 500?

    si el valor pasa de 500 entonces el valor seria 500x1? como puedo identificar cuantas veces se ha pasado de 500

    gracias un saludo


              

    Sunday, August 26, 2012 3:41 PM
  • English porfavor!

    And as far as I understand, you have some counter that count from 0 to 500. And if value is 250 counter must be 0,...

    Anyway, please put all requirements in english.


    Mitja

    Sunday, August 26, 2012 4:10 PM
  • Utiliza el modulo (%) y al numero le quitas el resto.

    550 % 500 = 50

    550 - 50 = 500

    250 % 500 = 250

    250 - 250 = 0

    • Edited by danielovik Sunday, August 26, 2012 6:04 PM
    Sunday, August 26, 2012 6:04 PM
  • si esa forma esta bien 

    pero si pongo 500 deberia darme 0 tambien

    mm yo pense en algo como dividir el numero entre 500

    asi

    250 /500 y quitando los decimales

    pero cuando pongo 600 deberia darme 1 pero me sigue dando 0 mmm 

    lo que quiero es saber cuantas veces me he pasado de 500 contando de 500 en 500

    pero creo que lo dejare de esa manera, puedo adaptarlo

    muchas gracias

    un saludo




    Sunday, August 26, 2012 6:35 PM
  • hola

    pero ese contador lo quieres en un for ?

    o sea

    int val = 500

    for(int i=0; i<=val; i+=500){

    }

    por supuesto en val pones a que numero debe llegar, y el for dara saltos de a 500 valores

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    Sunday, August 26, 2012 6:39 PM
  • Fácil. Es una operación entre enteros.

    Divides por 500 y, luego, multiplicas por 500.

    using System;
    
    namespace ConsoleApplication1
    {
        class Program
        {
            static void Main(string[] args)
            {
                int delta = 500;
    
                int num = 4585;
    
                Console.WriteLine(num/delta*delta);
                Console.ReadKey();
    
            }
        }
    }

    ---

    Debo haber leído mal. Se me ocurrió que deseabas que el resultado fuera 4500 y no 9 (u 8 !!!).


    • Edited by pamplinas Sunday, August 26, 2012 7:10 PM
    Sunday, August 26, 2012 6:39 PM
  • mm yo pense en algo como dividir el numero entre 500 asi
    250 /500 y quitando los decimales
    pero cuando pongo 600 deberia darme 1 pero me sigue dando 0 mmm

    Algo debes haber hecho mal al probarlo. La idea es perfectamente buena, y 600/500 debe resultar igual a 1. No hace falta quitar decimales, porque en C# la división de dos valores de tipo int devuelve un int (sin decimales).

    Si quieres que al poner exactamente 500 devuelva 0 en lugar de 1, tendrás que restar una unidad:

    int numero = 550;
    int resultado = (numero - 1) / 500;

    Sunday, August 26, 2012 6:41 PM
    Moderator
  • This is a duplicate of a question that you posted in the Spanish C# forum. You already got a reply there:

    http://social.msdn.microsoft.com/Forums/es-ES/vcses/thread/db034190-1001-47f6-90ab-0669aa571ec3

    Sunday, August 26, 2012 6:53 PM
    Moderator
  • si efectivamente estaba haciendo algo mal, creo que lo dejare de esa manera

    no logro hacer que me de el numero que quiero

    mira de esta manera

        int val = 600;

                for(int i=0; i<=val; i+=500)
                {
                    aqui el valor que da es 0

    cuando quiero que me de uno mmm

                }

    pero igual ya creo tener una idea de que puedo usar para identificar cada valor

    muchas gracias por las respuestas un saludo

    Sunday, August 26, 2012 6:56 PM
  • Realiza algo como esto

            static void Main(string[] args)
            {
                int x = 4585;
    
    
                if (x < 500)
                {
                    x = 0;
                    counter = 0;
                }
    
                else
                {
                    if (x == 500)
                    {
                        x = 500;
                        counter = 1;
                    }
    
    
                    else
                    {
                        int temp = x;
    
                        switch (x.ToString().Length)
                        {
                            case 3:
                                x = int.Parse((x.ToString().Substring(0, 1)) + "00");
                                break;
    
                            case 4:
                                x = int.Parse((x.ToString().Substring(0, 2)) + "00");
                                break;
    
                            case 5:
                                x = int.Parse((x.ToString().Substring(0, 3)) + "00");
                                break;
    
                            default:
                                break;
                        }
    
                        do
                        {
                            try
                            {
                                if (temp / 500 > 0)
                                {
                                    counter++;
                                }
    
                                temp -= 500;
                            }
                            catch (System.Exception)
                            {
                                break;
                            }
                        } while (temp > 0);
                    }
                }
            }
    


    Angel R. Jimenez G.
    Software Development
    Santo Domingo
    Republica Dominicana
    Blog

    Sunday, August 26, 2012 7:28 PM