¿Cómo cambiar formato de números en visual basic?

publicado por: Anonymous

Que tal… Disculpen, tengo un problema al guardar un valor en una base de datos desde visual basic y lo que pasa es que calcúlo un valor y el resultado es un número decimal, pero el número devuelto está separado por una coma y al guardarlo en la base de datos me da error. Lo que yo quisiera es mandar el valor pero separando los decimales por punto.
Ayuda por favor!

Este es el código:

Este es el código de la tabla:

create table Credito(
    id_credito int primary key identity,
    id_cliente int,
    id_Usuario int, 
    concepto varchar(40) not null,
    descripcion varchar(150) not null,
    cantidad_credito float not null,
    fecha_inicio date not null,
    tipo_cuota varchar(10) not null,
    fecha_fin date not null,
    cantidad_cuotas int not null,
    cantidad_mensual float not null,
    estado_credito char(1) not null,
    estado_mora int not null,
    numero_credito int,
    saldo float,
    check (estado_credito='C' or estado_credito='P'),
    check (estado_mora=1 or estado_mora=0),
    check (tipo_cuota='quincenal' or tipo_cuota='mensual'),
    constraint fk_ic foreign key(id_cliente) references Cliente,
    constraint fk_iu foreign key(id_Usuario) references Usuario
);

Esta es la clase Datos en donde se encuentran las funciones

Public Class Datos
    Dim conex As New SqlConnection
    Dim conectar As String = "Data Source=Desktop-sigtqcfmyserver;Initial Catalog=ProyectoFinal2;Integrated Security=True"
    Public Sub New()
        Try
            conex.ConnectionString = conectar
        Catch ex As SqlException
            MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
        End Try
    End Sub

//Esta es la función que utilizo para actualizar los registros
    Public Sub Actualizar(tabla As String, campos_valores As String, condicion As String)
        Try
            conex.Open()
            Dim cmd As New SqlCommand("update " & tabla & " set " & campos_valores & " where " & condicion, conex)
            cmd.ExecuteNonQuery()
        Catch ex As Exception
            MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
        Finally
            conex.Close()
        End Try
    End Sub
End Class

Y esta es la función con la que actualizo los datos al presionar Clic en un botón

Public Class Pagos
    Dim obj as New Datos
    Public Sub ActualizarPago()
        If meses >= 1 Then
            cantMora = meses * precioMora **PrecioMora equivale a 2.5**
            tabla = "Credito"
            campos_valores = "Saldo=" & cantMora + saldoPend
            condicion = "numero_credito=" & numero_factura
            obj.Actualizar(tabla, campos_valores, condicion)
        End If
    End Sub
End Class

obj es una instancia de una clase, que es en donde tengo las funciones para administrar los datos…

Actualizar es la función que utilizo y le paso como parámetros el nombre de la tabla que quiero actualizar a los campos y los valores que van a tener y la condición que se debe cumplir para que actualice los datos.

Al tratar de insertar el valor me da error se ve que lo interpreta como si estuviera insertando dos valores diferentes debido a que está separado por esa coma…

Las variables meses, cantMora, tabla, campos_valores, condicion están declaradas en un módulo.

solución

Buenos días, lo que tienes que hacer es convertir en String el float y después de eso hacer un Replace

Casteo:

Aquí te dejo las funciones para casteo en Visual Basic

Replace:

Aquí te dejo un ejemplo del replace.

Dim oldString As String = "32,3"
' Returns "Shipping List".
Dim newString As String = Replace(TestString, ",", ".")

Entonces lo que harías es reemplazar la coma por el punto.

Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *