Visual Basic - Problema con redondeo

Life is soft - evento anual de software empresarial
 
Vista:

Problema con redondeo

Publicado por Ximena (1 intervención) el 03/05/2005 15:30:34
Hola!

Tengo una función de redondeo para reemplazar el round, el problema es que funciona bien desde el entorno de programación, pero al compilarla redondea mal.

Me explico, tengo el valor 39.395, que redondeado a 2 decimales debe ser 39.4. El Round del VB no me sirve y encontré otra función. Si la ejecuto desde el proyecto sin compilar, redondea bien, y si la ejecuto compilada, me da 39.95.

Alguien me puede ayudar?

Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Problema con redondeo

Publicado por Anonimo (100 intervenciones) el 03/05/2005 15:59:24
Si ejecutas Round(39.395,2) te devuelve 39.4 y si no dices que función estás usando es imposible adivinar.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema con redondeo

Publicado por luis (79 intervenciones) el 03/05/2005 16:22:29
Function Round(nValor As Variant, Optional nDecim As Integer) As Double
Dim cMascara As String

cMascara = Replicate("#", nDecim - 1)
If nDecim > 0 Then
cMascara = cMascara + "0"
End If

If cMascara <> "" Then
cMascara = "." + cMascara
End If

cMascara = "#0" + cMascara

Round = Format(nValor, cMascara)

End Function

Si no tienes la función replicate:
Function Replicate(cChar As String, nCant As Integer) As String
Dim i As Integer
Dim cMono As String

cMono = ""
For i = 1 To nCant
cMono = cMono + cChar
Next i

Replicate = cMono

End Function
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar