Access - Truncar Decimales

 
Vista:

Truncar Decimales

Publicado por Hector (1 intervención) el 20/02/2007 17:01:27
Hola tengo una base de datos en access 2003

Tengo una Tabla donde uso Varios Campos de tipo numerico double, lo necesito asi por el tamaño de la informacion que luego se almacena ahi.

El chiste es el siguiente

Manejo los Campos de Descuentos, Abonos, Cargos, SaldoInicial y SaldoActual

Los querys ya los tengo hechos para sacar la informacion de otras tablas.

El problema viene siendo cuando en unos querys manejo un update donde dice

por poner un ejemplo

Update Reporte Set SaldoInicial=Cargos-Descuentos-abonos where mayoristalink= 5

El problema es que los descuentos, cargos o los abonos al sumarlos me trae varias decimales ya que uso multiplicaciones y divido algunas cosas.

Quiero que en la consulta ya sea update o select la informacion se utilice asi

Ej

Esta mal

563.8979

Esta Bien

563.89

Como se daran cuenta no redondeo, solo necesito las dos ultimas cifras, ya configure desde vista de diseño que solo use 2 decimales y que sea fijo, pero como en otras notas dicen, esto no funciona ya que es solo de manera visual, el access muestra 563.89 pero si le das click con el mouse ya te aparecen todas las demas decimales.

Intente con una mascara pero tampoco funciono. Necesito la sentencia en Sql ya que en access no tengo el trunc.

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:Truncar Decimales

Publicado por Enrique (1299 intervenciones) el 20/02/2007 19:45:25
Hay dos formas de truncar un numero decimal con muchos decimales a solo dos decimales (o los que quieras) que son Int y Round

Si tienes este número: 563,8979
Round lo dejaría en: 563,90 (porque el tercer decimal es mayor que 4) :
Round(Cargos, 2)

Función Int:
Con esta lo dejaría en 563,89 (ignora directamente el tercer decimal) :
Int(Cargos* 100) / 100

Ahora tendrás que ver la forma de aplicarlo a tu necesidad concreta dentro del Update, prueba a ver si así te funciona (es solo por probar porque no lo sé):

Update Reporte Set SaldoInicial=(Int(Cargos*100/100)-(Int(Descuentos*100/100)-(Int(Abonos*100/100) where mayoristalink= 5

Yo lo he probado en entorno VBA de un Formulario de esta forma y funciona perfectamente:
Me.Numero = Int(Me.Numero * 100) / 100
Si Numero es 125,21812141, lo convierte en 125,21

Un saludo
Enrique
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:Truncar Decimales

Publicado por fernando porcayo (1 intervención) el 15/05/2014 23:05:00
excelente esto me ayudo mucho .
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
Imágen de perfil de Rafael R. S.

RE:Truncar Decimales

Publicado por Rafael R. S. (1 intervención) el 29/09/2014 20:10:43
Eres un bárbaro, hace rato andaba buscando una solución para esto en Access y solo ahora la he encontrado. Gracias Enrique y bendito sea tu talento.
Rafael.
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:Truncar Decimales

Publicado por Jose (1 intervención) el 11/11/2020 21:59:30
Fenomenal, estaba buscando esto y más cosas que también he encontrado en esta Comunidad. No soy programador, ni mucho menos, pero las explicaciones son suficientemente claras para hasta yo las entienda. Muchas gracias
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