Foros del Web » Programación para mayores de 30 ;) » .NET »

number format?

Estas en el tema de number format? en el foro de .NET en Foros del Web. Hola, Estoy mostrando datos númericos de una base de datos en un repeater y queria saber con que instrucción puedo dar formato a estos números. ...
  #1 (permalink)  
Antiguo 16/03/2004, 04:59
 
Fecha de Ingreso: febrero-2004
Mensajes: 67
Antigüedad: 20 años, 2 meses
Puntos: 0
number format?

Hola,

Estoy mostrando datos númericos de una base de datos en un repeater y queria saber con que instrucción puedo dar formato a estos números. El tema es mostrar habitantes, donde una población puede tener por ejemplo 53000 habitantes. Yo querría poder mostrar 53.000. Donde muestro los datos es en el repeater:

<%# DataBinder.Eval(Container.DataItem, "HABITANTES") %>

En la instrucción anterior puedo hacerlo de alguna forma o tengo que hacerlo en el codebehind?

Gracias.
  #2 (permalink)  
Antiguo 16/03/2004, 06:22
 
Fecha de Ingreso: marzo-2004
Mensajes: 8
Antigüedad: 20 años, 2 meses
Puntos: 0
A ver, es muy sencillo

El problema q propones es muy sencillo de solucionar. El dscubrir el porque t no hace lo q tu quieres es lo mas complicado pero una vez q localizas el error es muy sencillo solucionarlo. Yo tngo la solución pero no me da la gana dartela. Curratelo un poquito q a mi me costo lo mio. Es muy fácil poner los problemas en un foro y esperar q otros t lo solucionen. Tu jefe t deberia d haber contratado como lector de foros no como programador.

Eres un pendejo bien grande

Un cordial saludo de mi parte
  #3 (permalink)  
Antiguo 16/03/2004, 06:38
 
Fecha de Ingreso: febrero-2004
Mensajes: 67
Antigüedad: 20 años, 2 meses
Puntos: 0
Antes de nada. Gracias por tu aportación.
Quizás lleves razón en lo que dices, pero cuando las fechas de entrega aprietan y eres nuevo en esta tecnologia no todo es tan sencillo ni hay tanto tiempo para hacer pruebas.
Yo sé que debe haber algun función de formateo o simplemente con toString() puedo pasar un entero a una cadena de texto. En el codebehind puedo hace pruebas pulsando ctrl+espacio para ver que métodos puedo utilizar pero en el aspx no tengo claro que tipo de código puedo poner entre <% %>. Otra duda que tengo es si <%# equivale a response.write.
Puedes ignorar este mensaje o ayudarme pero lo que si está claro es que si tengo que perder tiempo en cosas tan insignificantes como esta más vale que pleguemos todos. Otra cosa es que te hubiera preguntado como se programa orientado a objetos por ejemplo o que me solucionaras toda la aplicación. Estoy harto de programar en otros lenguajes (php) y la pregunta es para salir del paso porque se que es una tonteria pero no he encontrado la manera de hacerlo.

Gracias de nuevo por tu compañerismo.
  #4 (permalink)  
Antiguo 16/03/2004, 09:52
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
Cita:
Eres un pendejo bien grande
pdmoli.- Entiendo que hay que ser autodidactas y tratar de aprender cada uno por su cuenta pero no me parece que suprimas de esa manera a otra personas , mejor hay que tratar de guiarlo con elgunos ejemplos, o algunas ligas que le sean de utilidad... no digo que se ponga todo el código pero solo recuerda que hay personas que a penas se van iniciando.


En fin... keither. te mando un ejemplo para que hagas pruebas y te des una mejor idea de como lo puedes hacer.

VB.Net
Cita:
Dim dbl As Double = 12345677
Dim fmt As New System.Globalization.NumberFormatInfo

fmt.CurrencyDecimalSeparator = ","
fmt.CurrencyGroupSeparator = "."
fmt.CurrencySymbol = "$"

Response.Write(String.Format("{0:#,###}", dbl) & "<br>")
Response.Write(String.Format(fmt, "{0:c}", dbl))
c#
Cita:
Double dbl;
dbl = 12345677
System.Globalization.NumberFormatInfo fmt = new System.Globalization.NumberFormatInfo();
fmt.CurrencyDecimalSeparator = ",";
fmt.CurrencyGroupSeparator ="." ;
fmt.CurrencySymbol ="$";
Response.Write (String.Format(fmt, "{0:c}", dbl));
Response.Write(String.Format("{0:#,###}", dbl));
Saludos
  #5 (permalink)  
Antiguo 16/03/2004, 10:02
 
Fecha de Ingreso: febrero-2004
Mensajes: 67
Antigüedad: 20 años, 2 meses
Puntos: 0
Gracias Rootk por tu respuesta.

Esto desde el codebehind funciona, pero mi problema es que no sé como formatear un dato que tengo en el aspx al que accedo como he dicho antes:

DataBinder.Eval(Container.DataItem, "HABITANTES")

Per en el momento que hago esto en el aspx:

<%
int hab=DataBinder.Eval(Container.DataItem, "HABITANTES");
%>

Obtengo este error:

No se puede encontrar el tipo o el nombre de espacio de nombres 'Container'

No se puede acceder al DataBinder desde el aspx sin el '#'?

En un aspx, dentro de los <% %> que tipo de código puedo incluir?

Gracias de nuevo.
  #6 (permalink)  
Antiguo 16/03/2004, 10:48
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
http://www.4guysfromrolla.com/webtec...C/ch03.3.shtml

http://msdn.microsoft.com/library/de...evaltopic2.asp

http://authors.aspalliance.com/aspxt...lasseval2.aspx

http://www.developerfusion.com/show/4410/6/


Creo que con estos links te irá mejor. . .

Saludos
  #7 (permalink)  
Antiguo 16/03/2004, 11:19
 
Fecha de Ingreso: febrero-2004
Mensajes: 67
Antigüedad: 20 años, 2 meses
Puntos: 0
Ok ya voy entendiendo.

He visto que el método Eval de databinder tiene un tercer parámetro con el formato. He conseguido mostrar lo que queria lo que pasa es que mi dato es un entero y me aparece en pantalla asi:

53.543,00

No quiero que me aparezca ',00'

Entonces lo que he intentado es crear mi formato o modificar el actual:

CultureInfo micultura = new CultureInfo(CultureInfo.CurrentCulture.ToString()) ;
micultura.NumberFormat.NumberDecimalDigits=0;

Esto lo he probado en el codebehind y en el aspx pero en ninguno de los dos sitios ha variado el resultado. Como debo proceder?
En vez de lo anterior debo crearme un objeto numberformatinfo?
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:20.