Mostrar solo 2 decimales - ¿Cómo?

08/01/2007 - 08:55 por XTV | Informe spam
Hola, tengo un pequeño problema. En varias partes de mi aplicación debeo de
trabajar con datos que representan de tipo decimal, para mostar valores
economicos (guardados en SQL Server como money); para que me muestre siempre
solo 2 decimanles cree la siguiente función:

Function NumeroFormato(ByVal MiCifra As Decimal) As Decimal
'Esta función corta el número, dejandolo en 2 decimales, pero sin
redondeo alguno
Dim MiCultura As System.Globalization.CultureInfo
Dim MiFormato As System.Globalization.NumberFormatInfo = New
System.Globalization.CultureInfo(MiCultura.CurrentCulture.ToString(),
False).NumberFormat
MiFormato.NumberDecimalSeparator = ","
MiFormato.NumberDecimalDigits = 2

Dim Posicion As Integer
Posicion = InStr(MiCifra.ToString("N", MiFormato),
MiFormato.NumberDecimalSeparator)
NumeroFormato = Mid(MiCifra.ToString, 1, Posicion +
MiFormato.NumberDecimalDigits)
End Function

Pero el caso es que una veces me devuelve la cifrá con 2, 3 o hasta 4
decimales.

¿Por qué?, y más importante aún, ¿Cómo soluciono este problema?.

Ya puestos a tratar el asunto; ¿cómo aplico el formato a los formulario en
los que vez de poner los datos yo por programación, son carga
automaticamente (al tener vinculado cierto control, con su campo
correspondiente del DateSet)?

Muchas gracias

XTV
 

Leer las respuestas

#1 XTV
08/01/2007 - 12:45 | Informe spam
Muchas gracias Roberto; pero no me ha funcionado. Supongo que lo que me has
pasado es para el framework 2.0; y yo aún estoy en el 1.1

El error que me da (en tip que marca sobre el código) es:

"No se ha especificado ningún argumento para el parámetro 'count' de
'Public Fucntion Remove(StartIndex as integer, count as integer) as string'
"

He probado a darle un valor integer a dicho argumento, pero aun asi sigue
dando el error.

Seguiré mirando; aunque si se te ocurre cómo corregirlo me dices, ok?.

Muchas gracias de nuevo; un saludo

XTV



"Roberto" wrote in message
news:
Córtalo así:

NumeroFormato > MiCifra.ToString.Remove(MiCifra.ToString.IndexOf(MiFormato.NumberDecimalSeparator
+1 + MiFormato.NumberDecimalDigits)


"XTV" wrote:

Hola, tengo un pequeño problema. En varias partes de mi aplicación debeo
de
trabajar con datos que representan de tipo decimal, para mostar valores
economicos (guardados en SQL Server como money); para que me muestre
siempre
solo 2 decimanles cree la siguiente función:

Function NumeroFormato(ByVal MiCifra As Decimal) As Decimal
'Esta función corta el número, dejandolo en 2 decimales, pero sin
redondeo alguno
Dim MiCultura As System.Globalization.CultureInfo
Dim MiFormato As System.Globalization.NumberFormatInfo = New
System.Globalization.CultureInfo(MiCultura.CurrentCulture.ToString(),
False).NumberFormat
MiFormato.NumberDecimalSeparator = ","
MiFormato.NumberDecimalDigits = 2

Dim Posicion As Integer
Posicion = InStr(MiCifra.ToString("N", MiFormato),
MiFormato.NumberDecimalSeparator)
NumeroFormato = Mid(MiCifra.ToString, 1, Posicion +
MiFormato.NumberDecimalDigits)
End Function

Pero el caso es que una veces me devuelve la cifrá con 2, 3 o hasta 4
decimales.

¿Por qué?, y más importante aún, ¿Cómo soluciono este problema?.

Ya puestos a tratar el asunto; ¿cómo aplico el formato a los formulario
en
los que vez de poner los datos yo por programación, son carga
automaticamente (al tener vinculado cierto control, con su campo
correspondiente del DateSet)?

Muchas gracias

XTV


Preguntas similares