Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Problema con los decimales

Estas en el tema de Problema con los decimales en el foro de Visual Basic clásico en Foros del Web. Desde hace un par de años he estado esperando una respuesta de este foro sin resultado.Mi problema es el siguiente tengo un control msflexgrid en ...
  #1 (permalink)  
Antiguo 19/02/2007, 08:07
 
Fecha de Ingreso: diciembre-2003
Ubicación: Ituzaingo - Corrientes - Argentina
Mensajes: 3
Antigüedad: 20 años, 4 meses
Puntos: 0
Problema con los decimales

Desde hace un par de años he estado esperando una respuesta de este foro sin resultado.Mi problema es el siguiente tengo un control msflexgrid en el deseo mostrar unos valores (números) con decimales pero solo me muestra números enteros, los datos los tomo de una BD que cargo mediante un control data, y luego de cargar los datos hago una suma utilizando los campos de la grilla así :
Private Sub Combsumar_Click()
Dim mono As Double
Grillav.Col = 5
For i = Grillav.Rows To 1 Step -1
Grillav.Row = i - 1
mono = Format(mono + Val(Grillav.Text), "##0.00") 'Format(0, "0.")
Next
i = Grillav.Col = 5
Grillav.Row = Grillav.Rows - 1
If Grillav.Text <> "Total:" Then
Grillav.Rows = Format(Grillav.Rows + 1, "##0.00")
Grillav.Col = 4
Grillav.Row = Format(Grillav.Rows - 1, "##0.00")
Grillav.Text = Format("Total:", "##0.00")
Grillav.Col = 5
Grillav.Text = Format(mono, "##0.00")
Total = Format(mono, "##0.00")
End If
If Efectivo = "" Then
iva = Format(Total * 0.21, "##0.00")
confinal = Format(Total + CDec(iva), "##0.00")
Else
vuelto = Format(Efectivo - CDec(confinal), "##0.00")
End If
End Sub
Ojalá exista alguien que me pueda rosolver este problema.Gracias igual
  #2 (permalink)  
Antiguo 19/02/2007, 18:47
Avatar de nanomartin  
Fecha de Ingreso: mayo-2005
Ubicación: Moron - Bs As (ARG)
Mensajes: 50
Antigüedad: 18 años, 10 meses
Puntos: 0
Re: Problema con los decimales

Hola Angel.;)

Yo estoy con un problema similar, y si bien los datos no vienen de una DB, automaticamente VB me elimina los decimales 0, y por una cuestion de estética debo mantener el formato $ 0.00.

Ojalá alguien responda y nos ayude a ambos.

Suerte para los dos
  #3 (permalink)  
Antiguo 20/02/2007, 13:06
Avatar de culd  
Fecha de Ingreso: noviembre-2003
Mensajes: 959
Antigüedad: 20 años, 5 meses
Puntos: 19
Re: Problema con los decimales

Hola que tal...

Si trabajan con Access, tienen que ver como crearon el campo correspondiente a lo que estan cargando, y verificando (me refiero al precio).

Si lo crearon como Entero, obviamente les va a redondear sin decimales... Tienen que manejarlo con Currency (lo mismo desde vb)...

Aca les dejo una funcion que cree hace tiempo para Redondear un precio y dejarlo siempre en 2 decimales. Espero que les sirva....
PD: Mantengan los derechos de autor por favor.


'----------------------------
'Creado por: CULD
'E-mail: [email protected]
'----------------------------
Public Function Redondear(valor As String) As String
Dim dblvalor As Double
Dim totalLen As Long
Dim decimalLen As Long

If Val(valor) <> 0 Then
dblvalor = Format(Val(valor), "###,###,##0.##")
Else
dblvalor = Format(0, "###,###,##0.##")
End If
Redondear = Trim(Str(dblvalor))

If InStr(Redondear, ".") = 0 Then
Redondear = Redondear & ".00"
Else
totalLen = Len(Redondear)
decimalLen = InStr(Redondear, ".")
If totalLen - decimalLen = 1 Then
Redondear = Redondear & "0"
End If
If decimalLen = 1 Then
Redondear = "0" & Redondear
End If

End If

End Function
  #4 (permalink)  
Antiguo 20/02/2007, 13:14
Avatar de nanomartin  
Fecha de Ingreso: mayo-2005
Ubicación: Moron - Bs As (ARG)
Mensajes: 50
Antigüedad: 18 años, 10 meses
Puntos: 0
Re: Problema con los decimales

Muchas Gracias CULD !!!

No estoy ahora con el proyecto, pero luego lo pruebo y te cuento cómo me fue.
Mis variables las declaré desde VB mismo.. porque son simples calculos COSTO * CANTARTS = TOTAL

Respecto a la postdata, mi trabajo es un examen final para a facultad, no obstante haré mención de tu nombre

Saludos, suerte.
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 00:08.