Cuatro decimales correctos sin redondear

Hola... Buen día... He leído algunas de sus respuesta y son muy buenas...
Espero pueda ayudarme a mi también:
Mi problema es que cuando hago una conversión monedas, al crear el registro me la conversión me queda bien... Pero cuando hago una actualización al registro, la conversión se cambia: por ejemplo: 12 $ a lempiras (12*19.0274) = 228.3288.
Pero en el formulario donde hago el update, me lo deja más o menos así: 228.33.
El update lo hago con un cursor; el cual lo creo a partir de los datos que están en el formulario: ejemplo:
CREATE CURSOR cursor_datos_planilla (valor_dolares N(6,5), valor_lempiras N(6,5), tarjeta N(1))
                INSERT INTO cursor_datos_planilla VALUES (thisform.text4.value, (thisform.text5.value), vrtarjeta)
             UPDATE planilla_completa;
SET planilla_completa.valor_dolares = cursor_datos_planilla.valor_dolares, planilla_completa.valor_lempiras = cursor_datos_planilla.valor_lempiras, planilla_completa.tarjeta = cursor_datos_planilla.tarjeta;
WHERE planilla_completa.id_usuario = vrid_usuario AND planilla_completa.fecha_planilla = thisform.text2.Value
Pero aun así en la parte donde le asigno la cantidad de decimales es decir 5... No los acepta y me hace el redondeo a 2 decimales.
Bueno espero me pueda ayudar... De antemano gracias por leer mi pregunta.

1 respuesta

Respuesta
1
Repasemos la lógica de tu código !
1) Creas el cursor (¿en dónde no tienes problemas?)
2) Asignas valores a los txtbox de tu form tomándolos de tu cursor (el txtbox te muestra dos decimales en vez de 5 !)
3) Actualizas la el cursor / Tabla a partir de los valores de tus txtbox
Encontremos el problema:
a) Me llama la atención la cómo defines los campos de tu cursor valor_dolares N(6,5): Estás definiendo un campo numérico con una extensión total de 6 caracteres de los cuales 5 son decimales y el carácter restante lo toma la coma decimal. ¿Y los enteros?)
Por favor verifica los datos de tu cursor !
b) Por otra parte me parece que otro problema puede estar en la configuración de tu control txtbox, que es de donde tomas el valor para actualizar tus datos.
Verifica la propiedad "Imputmask" de tu control txtbox.
Si tu quieres almacenar el numero 228.3288. (de tu pregunta) la propiedad inputmask de tu txtbox debería ser así:
thisform.text4.inputmask="999.9999"
De estas forma estás predeterminando la cantidad de enteros y decimales de tu txtbox.
En este caso los campos de tu cursor deberían ser N(8,4)
Señor es usted un genio!...
Tiene mucha razón... en la parte de la declaración de los campos especifiqué el numero de caracteres así: valor_dolares(9,4)...
Es decir 9 caracteres tomando en cuenta que son 4 enteros un punto y 4 decimales.
Y quedo perfecto...
Muchisimas, muchisimas gracias!!!!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas