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

Preguntas similare

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


Respuesta Responder a este mensaje
#2 Rodrilobo
08/01/2007 - 16:01 | Informe spam
Amigo lo que tienes que hacer es darle formato asi:

dim Decimal as double

Decimal = 10523254.256664

Decimal = Format(Decimal, "Standard") 'Te lo formatea asi 10,523,254.26
Decimal = Format(Decimal, "Fixed") 'Te lo formatea asi 10523254.26

Espero que te sirva...


XTV ha escrito:

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
>>
>>
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida