A continuación tenemos un ejemplo que nos permitirá, redondear números enteros y decimales utilizando la función Fix:
- Función Fix: Devuelve la parte entera del número dado. Pero si el número es negativo, devuelve un número negativo mayor que o igual al número
Código fuente
Paso 1: Función Listar_Unidades
Sub Listar_Unidades()
Try
ListBox1.Items.Add("DiezMilesima")
ListBox1.Items.Add("Milesima")
ListBox1.Items.Add("Centesima")
ListBox1.Items.Add("Decima")
ListBox1.Items.Add("Unidad")
ListBox1.Items.Add("Decena")
ListBox1.Items.Add("Centena")
ListBox1.Items.Add("Mil")
ListBox1.Items.Add("Diez Mil")
Catch ex As Exception
MessageBox.Show("Error...", "vb.net", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
End Sub
Paso 2: Llamar a la función Listar_Unidades
Private Sub redondear_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Listar_Unidades()
End Sub
Paso 3: Implementar función RoundI
Public Function RoundI(ByVal x As Double, Optional ByVal d As Integer = 0) As Double
Dim m As Double
m = 10 ^ d
If x < 0 Then
RoundI = Fix(x * m - 0.5) / m
Else
RoundI = Fix(x * m + 0.5) / m
End If
End Function
Paso 4: Programar ListBox
Private Sub ListBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox1.SelectedIndexChanged
Try
If (txtValor.Text <> "") Then
Dim Unidad As String = ListBox1.Items.Item(ListBox1.SelectedIndex)
Dim resultado As Double = CDbl(txtValor.Text)
Select Case Unidad
Case "DiezMilesima"
txtRedondear.Text = RoundI(CDbl(txtValor.Text), 4)
Case "Milesima"
txtRedondear.Text = RoundI(CDbl(txtValor.Text), 3)
Case "Centesima"
txtRedondear.Text = RoundI(CDbl(txtValor.Text), 2)
Case "Decima"
txtRedondear.Text = RoundI(CDbl(txtValor.Text), 1)
Case "Unidad"
txtRedondear.Text = RoundI(CDbl(txtValor.Text), 0)
Case "Decena"
txtRedondear.Text = RoundI(CDbl(txtValor.Text), -1)
Case "Centena"
txtRedondear.Text = RoundI(CDbl(txtValor.Text), -2)
Case "Mil"
txtRedondear.Text = RoundI(CDbl(txtValor.Text), -3)
Case "Diez Mil"
txtRedondear.Text = RoundI(CDbl(txtValor.Text), -4)
End Select
Else
MessageBox.Show("Ingrese valor a redondear", "vb.net", MessageBoxButtons.OK, MessageBoxIcon.Error)
End If
Catch ex As Exception
MessageBox.Show(ex.Message, "vb.net", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
End Sub
Fuente de información
No hay comentarios:
Publicar un comentario