Bienvenido Miguel!!!!!!!!!!!! Que raro :S Coincidimos en muchas cosas, apasionados por las tecnologias, gusanillo por aprender cosas nuevas, la arquitectura, fan de ScottGu, etc. ¿Esto será lo que nos une a todos los geeks? Jejeje Me encantará leer tu blog, por la temática y bueno, porque somos todos geeks, tenemos sino nos leemos nosotros, ¿quiénes nos van a leer?
Saludos y suerte con tu nuevo blog ;)
Hola Miguel Angel, bienvenido.
Bienvenido seas, leeremos con gusto tu blog
Un Saludo desde Huelva
Bienvenido amigo, espero con emoción todas las cosas que nos tienes que contar.
Saludos
Unai
Bienvenido Miguelitoooo!!! Hmmm que de migueles hay por aqui ultimamente, todos buenos por supuesto jejejeje...
Aunque pensandolo mejor, no es solo de migueles, esta comunidad empieza a ser el Titanic del desarrollo .NET en español, a veces me da vergüenza hasta escribir por el "que diran"...
Lo dicho, bienvenido y espero leer tus posts sobre camaras, tiras reflectantes y esos proyectos tann chulos que haceis los sevillanos
:)
Parece que el primer tipo de cast utiliza el redondeo común y por eso lo deja en 5, mientras qeu convert utiliza un redondeo gausiano (de banquero) y por eso lo pasa a 6.
Lo curioso es que he hechado un ojo al Convert.ToInt32 de .net 2.0 y .net 1.1......y sorpresa!
Tras una comprobación de si el numero se pasaría del rango de int32..lo que hace es "return (int) value;"
aqui hay para pergarse un rato a ver que pasa :)
Hombre, el señor Miguel Angel Ramos, hay que ver a las personas que se encuentra uno por estos RSS de dios... qué cantidad de buena gente hemos salido de esa ETSII... :)
Que te vaya bien con tu nuevo blog, te leeré, y no te pongas tan "pejiguera", que un redondeo es un redondeo y no hay que darle más vueltas :)
Salva.
Gracias David,
Usando el Reflector me encuentro con el siguiente algoritmo:
public static int ToInt32(double value)
{
if (value >= 0)
if (value < 2147483647.5)
int num1 = (int) value;
double num2 = value - num1;
if ((num2 > 0.5) || ((num2 == 0.5) && ((num1 & 1) != 0)))
num1++;
}
return num1;
else if (value >= -2147483648.5)
int num3 = (int) value;
double num4 = value - num3;
if ((num4 < -0.5) || ((num4 == -0.5) && ((num3 & 1) != 0)))
num3--;
return num3;
throw new OverflowException(Environment.GetResourceString("Overflow_Int32"));
Como bien dices hace un redondeo al número despues de transformarlo y por eso el efecto distinto entre Convert y el casting.
Saludos!
Parece que no iba desencaminado pero me colé de función :D
gracias!
Hola guapo, bienvenido otra vez a la blogoesfera, o como sea que se escriba.
Mola lo del Ajax ese, pero una pregunta que se me viene a la cabeza ahora mismo: ¿Cuantos de los navegadores de los dispositivos móviles que hay en el mercado soportan javascript para poder llevar Ajax a ellos?
Investigaré sobre ello.
Lo mejor de todo es que lo hacen en una sola linea de codigo.... ¡Asi no hay quien mire nada! ><
La conversion de Convert es realmente el redondeo estándard de la IEEE, algo que no nos enseñan en la escuela porque es más dificil de comprender, que se realiza distinguiendo los pares de los impares ( los impares lo sube y el par lo baja ) cuando la cantidad a redondear está en el punto medio, de esta forma es mucho más equitativo el redondeo puesto que la mitad de los numeros subirían y la otra mitad bajarían ( se supone que existe la misma cantidad de numeros pares que impares) en cambio con el casting lo único que haces es descartar la parte decimal, sea cual sea..
Interesante, sobre estos temas hay cantidad de juegos, os pongo uno, poner un double a 0.1 y un blucle que los sume 100 veces ¿ cual es el resultado ? ¿ por que ?
Muy bien, manos a la obra:
using System;
namespace JuegoDeUnai
class Program
static void Main(string[] args)
double numero = 0.1;
double resultado = 0;
for(int i=0;i<100;i++)
resultado += numero;
Console.WriteLine(resultado);
Console.ReadLine();
Da un resultado de 9.99999999999998. Eso sólo puede ocurrir porque el algorirmo de sumar esté mal..cosa que estoy seguro que no es así.
Como no puedo ver la implementación de float64, ya que es un tipo del IL, tendré que deducirlo.
Y lo único que se me ocurre es algún problema de optimazación con los floats. Como sé que Unai es matemático, seguro que tiene que ser algo de númoros, así que seguro que han usado alguna base distinta a 10 para hacer operaciones lo más rápidamente posible (como muy común en las arquitecturas de los ordenadores, en las ALU) y ahí la han "cagao".
No obstane...ilumíname Unai!
Aqui tienes un artículo que escribió Sergio Tarrillo acerca de esto:
http://geeks.ms/blogs/sergiotarrillo/archive/2006/10/20/4900.aspx
Salu2.
¡Juas! ¡He acertado! Unai, me debes una cerveza.
Muchas gracias Luis.
Muu bien, te pago la cervecita la próxima vez que nos veamos, que estoy seguro que será en el OpenDay!!! Por cierto dentro de poco tendremos en geeks un blog esclusívamente para estos tipos de juegos .... estoy seguro que será divertidísimo...
Jejeje te me has adelantado, pensaba hacer lo mismo :) (como hago siempre resumiendo los puntos más importantes del post de ScottGu).
Por opinar un poco y dejar una polémica en el aire... ¿Crees que será una alternativa factible a Flash? Yo creo que si por multiples ventajas (entre ellas que es una especificación abierta y es más ligero, o eso me ha parecido).
PD: Aunque te me hayas adelantado dejaré la noticia en mi blog ;), jejeje
Ayer ScottGu anunciaba la publicación de la primera CTP de WPF/E (o también llamado Windows Presentation
¡Hola Eugenio!
Bueno, creo que la unión hace la fuerza: yo traduzco y tu resumes. Me parece perfecto. :)
Sobre si WPF/E es una alternativa a Flash, pues mucho me temo que aún no tengo el suficiente conocimiento de WPF/E para saber si lo será. En unos días me pondré a juguetear con él y veré hasta dónde puede llegar. No obstante, Flash es una tecnología muy implantada en el mercado, con unas herramientas de desarrollo bastante buenas, y será muy, pero que muy dificil, ver cómo WPF/E le quita protagonismo.
Saludos compañero.
¡Felicidades! Ahora preparate para que te acose a preguntas xD
P.D. MyList has not a method called NextIten.
Seguro que ese NextIten() es una version overriden y overloaded del método original xDD
Enhorabuena Miguel Angel! Y Feliz Año a todos :)
Enhorabuena chavalote... y bienvenido al club de los 'Viciosos'
Felicidades!!!!!
Enhorabuena chavalote!!!
Espero que este año sigas, más si cabe, ayudando a que la comunidad crezca en pasión por la tecnología.
Un abrazo,
Cristian
¡Muchas Felicidades!
Recuerda que cada año pasamos la reválida, y si es difícil llegar, más aún mantenerse, así que Felicidades y a seguir por esta línea. :-))
Felicidades MA, todos los que sabemos como funcionan los DotNetClubs sabemos del curro que tu realizas, y que de verdad es mas que merecido esto, y mucho mas!
Espero que este nuevo año te traiga muchas nuevas alegrias y sorpresas gratas.
Un saludo desde Oviedo. Carlos aka Cachero ;)
Enhorabuena!!
Creo que ahora tienes que pasar por una ceremonia de iniciación, ya te contarán los veteranos :-)
Enhorabuena y bienvenido al club! ya veras que divertido es la primera vez... }:-)
Te iva a dar la enhorabuena, pero vistos los comentarios casi que te doy el pesame por la que te espera .... je, je, que no !!!!
Enhorabuena !!!
Si es que...eso te pasa por andar cacharreando con Atlas y el Reflector :P
Enhorabuena elemento!!
Enhorabuena. Pero no te perdono que me haya tenido que enterar de este blog por David Salgado y de la noticia en sí.
Y si eres MVP es porque te lo mereces de sobra. Saludos, campeón.
Enhorabuena MA!!! Da gusto ver como a la gente que curra y comparten se lo reconocen! No podía ser más merecido!
Un abrazote enorme!!
La suerte nos acompañó bastante en Mérida. En breve escribiré crónicas.
Fue genial, a ver si pronto disfrutamos de más sesiones :D :D
HOLA FELICIDADES POR TUS LOGROS SALUDOS DESDE MEXICO
El blog técnico de Miguel Ángel Ramos