Monthly Archives: February 2010

No entran o salen llamadas de tu iPhone? Desactiva el 3G y dejalo en EDGE

iPhone Telcel

iPhone Telcel

Hace unos dos o tres días empecé a tener problemas al querer hacer llamadas con mi iPhone 3G S.

Apenas y seleccionaba un contacto que llamar, pasaba un segundo (ni siquiera daba línea el teléfono) y la llamada terminaba sola. “Call back failed”. Un día después, un amigo me avisó que mi celular lo estaba mandando directo a buzón al intentar llamarme. Las llamadas si podían salir, después de intentarle 3 o 4 veces. Y a veces recibía llamadas, no se realmente cuantas llamadas perdí.

Para poder hacer y recibir llamadas cuando tengan este problema, simplemente deshabiliten el 3G de su telefono, para dejarlo en EDGE, y problema arreglado (a medias).

Estoy leyendo en foros de Estados Unidos que alguna gente que ha tenido este problema lo arregla cambiando su chip SIM…tal vez luego intente eso.

Como formatear una cantidad a currency en .NET controlando el numero de decimales

.NET

Tantas opciones que hay para formatear strings en.NET, que es difícil memorizar todas.

Hoy tuve que formatear una cifra numérica que en la base de datos está como decimal, pero en el UI no quería desplegar ninguno de los decimales. Casi todo el mundo ha utilizado el string.Format(“{0:C”), el cual formatearía como si la cantidad fuera una cifra monetaria, pero eso implica tener decimales.

Algua persona podría pensar en realizar esto desde el stored procedure o el query que trae la información, pero personalmente creo que eso es un error, ya que los datos deben estar siempre  intactos y lo unico que debemos modificar es el formato en el que los queremos desplegar. Además, eso implicaría tener que estar controlando también el formato del símbolo separador de miles. Esto es algo que simplemente no se debe hacer en base de datos.

Googleando, encontré en los forums de ASP.NET la siguiente manera de hacerlo, pero tampoco es la más correcta:


System.Globalization.NumberFormatInfo nfi = new System.Globalization.NumberFormatInfo();
nfi.CurrencyDecimalDigits = 0;
nfi.CurrencySymbol ="$";
myLabel.Text =string.Format(nfi,"{0:C}", ad.Price);

Ya que estoy utilizando esto en un control Repeater, tendría que crear un método con las primeras 3 líneas de texto anteriores, y eso implicaría estar generando varias instancias de NumberFormatInfo.

Para ya no hacer más largo este post, les dejo la solución correcta.


string.Format("0:C0", ad.Price);

Así de sencillo…y no lo especifican en ningun lugar de MSDN…lo vine a encontrar aqui: .NET Format String 101. Obvio decirlo, basta cambiar el C0 por C1, C2, C3 o Cx para determinar el número de decimales que queremos desplegar. Esto también hace mucho más facil poner ese format string en el archivo de configuración y poder reutilizarlo en varias pantallas sin tener que estar cambiando código.

Les dejo también otra buena referencia de string.Format: String Formatting in C#

 Scroll to top