> Faqs > Cálculo con decimales en ASP

Cálculo con decimales en ASP

Estoy programamdo en ASP (vbscript) y quiero hacer un calculo simple con decimales, pero tengo un problema que se genera por la notación para los decimales, especificados con el caracter punto "." o coma ",".

Cuando ingreso el importe y lo hago con los decimales del teclado numerico, me pone por ejemplo 112.36 y en la base de datos que esta en Access (ya esta echo asi) el campo importe esta definido como numero general me pode 112,36 con coma...

Cuando quiero restarlo obvio ingreso 113.36 me hace cualquier cosa (no hace bien el calculo), si le coloco 112,36 del teclado alfanumerico lo resta perfecto pero en la base de datos me guarda 11336 sin coma ni nada...

No entiendo porque me hace esto si alquinen me puede ayudar agradecido.

Respuestas

El problema que tienes, como has podido analizar y describir, está relacionado con el caracter de separación de la parte entera y la parte decimal. En español los decimales se expresan con coma "," pero en inglés se expresan con punto ".".

Por lo que mencionas, Access debe estar en español y separa la parte entera de la parte decimal con la coma. Sin embargo, Visual Basic Script (ASP) te interpreta correctamente si le pones el punto "." como separador de decimales, y para que te haga bien la operación necesita el punto y no la coma. Por culpa de esta situación se genera un embolado bastante desagradable de resolver.

Yo te recomiendo que te fijes qué necesitas en cada caso, si coma o punto, y que realices un reemplazado del caracter, para tener justamente lo que necesitas.

Usa la función replace, que te haga el cambio de los valores a lo que tú necesites, de coma a punto cuando sea oportuno, o de punto a coma...

Por ejemplo, esto cambia el caracter "." por el caracter ",".

replace("22.44",".",",")

Así creo que lo solucionarás, solo tienes que asegurarte que tienes el caracter correcto de separación de decimales, antes de hacer la operación que corresponda.

Borja
314 6 25 17
Gracias por la respuesta ...pero lo solucione de otra forma primero di de alta los valores porque me di cuenta que en la tabla los estaba guardando mal...asi que primero los di de alta luego los busco y hago el calculo y funciono gracias de todas maneras voy a ver si implemento el resplace...gracias