• Viernes 8 de Noviembre de 2024, 12:53

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - Anónimo

Páginas: [1]
1
VB .NET / ¿double, Decimal U Otro Tipo De Datos?
« en: Viernes 21 de Marzo de 2008, 17:28 »
Buenas.

Estoy haciendo un programa de matemáticas para el cual necesito mucha precisión pero .net me trae de cabeza....  :angry:  El caso es que necesito manejar datos con muchos decimales y para ello pensé que sería buena opción utilizar el tipo de datos double porque tiene mayor rango de datos pero a la hora de la verdad no sé que decir. Hasta ahora no había tenido "errores" pero ha llegado un momento, que al tener tantos añadidos mi programa me he visto obligado a releer el código, entender lo que quería hacer en su día y reescribirlo. Pues bien eso he hecho en unas partes porq se repetía el código y todo funciona como antes pero al ir a tocar una parte... todo mal. Me gustaría dejar el nuevo código pues ocupa 13 lineas muchas más visibles q no 72 como antes... pero no me deja  :lightsabre: . Antes de pasar a explicar os dejo el código:
Dim resultado As Decimal = (CDbl(resta2) - CDbl(resta1))
        If CStr(resultado).Contains(",") Then
            Dim decimales As String() = CStr(resultado).Split(",")
            If decimales(0) = "0" Then
                resultado = System.Math.Pow(10, (-1 * CInt(decimales(1).Length)))
            Else
                resultado = System.Math.Pow(10, (CInt(decimales(0).Length)))
            End If
        Else
            Dim enteros As String = CStr(resultado)
            resultado = System.Math.Pow(10, CInt(enteros.Length))
        End If
        ii = resultado / 1000 ' número a devolver
Bien tengo que restar 2 números y devolver un número que tenga un decimal o un entero más que el resultado de la resta... vamos a ver para q nos entengamos copio un cachito del antiguo código
 If (CDbl(resta2) - CDbl(resta1)) < CDbl(0.000000000001) And fijado = False Then
                            ii = 0.000000000000001
                            fijado = True
                        ElseIf (CDbl(resta2) - CDbl(resta1)) < CDbl(0.00000000001) And fijado = False Then
                            ii = 0.00000000000001
                            fijado = True
                        ElseIf
En el primero me dice q si es más pequeño q eso (12 decimales) se devuelva el número más pequeño con 14 decimales. Después dice que si es más pequeño que 11 decimales se devuelva uno de 13 y así hasta pasar de decimales a enteros bueno con decimales pero q no son 0, algo bien altos.
Pues bien tan contento que estaba yo y el payaso de VB dice que 49,1 - 48,2 (q son 0,9) es 0,89999999899999899  :lightsabre: ..... una cosa así. Claro para mí eso tendría q ser 1 decimal y me iría bien pero como el señorito dice q son un huevo de decimales pues se calcula para ese huevo de decimales y no podría truncar porque como se necesita mucha precisión si el número es muy pequeñito pues... ¿Sabéis de alguna manera como se consiga una precisión buena? Me recomendáis utilizar double, decimal u otro tipo de datos? He probado este código con decimal y aunque mejoraba el resultado se queda muy lejos de antiguo código...
Bueno muchas gracias  :smartass:  :hola:

2
Programación de Videojuegos / Re: Ayuda Por Favor!
« en: Domingo 24 de Julio de 2005, 23:16 »
No está mal la idea Amilius.
Por cierto, las librerias del directx, el SDK, ¿Es solamente para productos de microsoft? Es que el otro día me descargué el Borland C++ Builder 6 en inglés y no se si tiene eso. Además si lo tiene, ¿Se llama igual?
También me gustaría saber cuala es la diferencia entre el Borland C++ Builder 6 y el Borland C++ Builder X
Muchas gracias.

3
Programación de Videojuegos / Re: Ayuda Por Favor!
« en: Sábado 23 de Julio de 2005, 00:27 »
Bueno está bien. me habeis convencido. Haré un juego en 2D.
Para Neko-sama:
OK. Lo haré con el borland C++ Builder. Me dejaron la versión 5. Voy a ver si puedo descagarme una más nueva. También tengo el c++ del visual studio 6 pero ese programa no me gusta...
A y por cierto nunca he tocado nada de ensamblador pero ya hace tiempo que tengo curiosidad por saber como es....
Para JuanK:
No sé que es allegro. Nunca he entrado en el mundo del C# ni del C#.net. Son muy diferentes de otros como Delphi, VB, C++, c++.net o vb.net?



PD. Ya sé el tipo de juego. Algo de estrategia en tiempo real. ¿Nadie ha jugado al civilization de la SNES? (Yo lo he jugado en un rom en el ordena. Si lo queréis os lo paso) Es perfecto para una cosa de 2D avanzado.

4
Programación de Videojuegos / Re: Ayuda Por Favor!
« en: Viernes 22 de Julio de 2005, 01:23 »
Gracias por preocuparte pero sigo estando sin ningún tutorial bueno para hacer juegos.

5
Programación de Videojuegos / Re: Ayuda Por Favor!
« en: Jueves 21 de Julio de 2005, 19:43 »
Muchas gracias por esas webs. Por cierto me interesa más hacer juegos en 3D. Para algo me descargué el 3ds Studio Max 7  :)
De 3d hay algún tutorial?
PD. Prefiero programar en VB o VB.NET

6
Programación de Videojuegos / Ayuda Por Favor!
« en: Jueves 21 de Julio de 2005, 02:25 »
Hola soy nuevo en este foro. He estado buscando sitios de programación de videojuegos y por lo que veo este es el único lugar que parece bueno y es en español. Pues bien, mi problema es el que todas las personas tienen al comenzar con esto. No se programar videojuegos. Me gustaría encontrar un tutorial para aprender pero no encuentro nada. he buscado un montón de tutoriales de directx y no lo encuentro. Por casualidad no me podriáis decir como empezar? Muchas gracias a quien me conteste.
PD. No sé como he llegado aquí. No sé si este foro es para algún lenguaje concreto. Sé programar con Visual Basic (tengo el 6.0) y con el VB.NET (tengo la 2ª beta del 2005). También se programar con el c++ builder. Si lo pudiera conseguir, cnseguiría el 5.0. Eso es todo muchas gracias de nuevo

Páginas: [1]