Ver Mensaje Individual
  #3 (permalink)  
Antiguo 09/04/2007, 09:11
Lebennin
 
Fecha de Ingreso: septiembre-2005
Mensajes: 135
Antigüedad: 18 años, 7 meses
Puntos: 1
Re: Problemas con decimales

Lo primero de todo, gracias por contestar.

Pero el problema sigue siendo el mismo. Los usuarios no introducen los millares, sino que yo les muestro en los input el valor por defecto FormatNumber(valor,2). El problema es que cuando tu das a modificar, mandas dos input de estos, uno de maximo y otro de minimo. Y tenemos los siguientes problemas:

1. El que no ha modificado enseña los millares con . y los decimales con ,
2. El valor introducido por el usuario en el otro input puede tener o no decimales (ya habia probado lo de los replace despues de escribir el mail :() y puede que ponga el punto decimal como , o como . y no se como hacer para que funciones sin pedirle al usuario que no utilice la coma.

Espero que esta vez si haya explicado mejor el problema.

PD: El problema creo que es del FormatNumber, que coge las especificaciones por defecto del servidor (donde supongo que , será para decimales y . para millares). No puedo modificar dicha configuración


Cita:
Iniciado por tammander Ver Mensaje
Hay muchas funciones JavaScript que permiten tanto visualizar como capturar numeros con decimales y que puntuen los millares pero creo que ese no es tu problema.



Una forma de ver los numeros con decimales es usar Session.Lcid

Prueba esto

session.LCID = 1034

num = 23456.45

response.write num

Verás que cambia el punto del decimal por una coma. Esto esta muy bien para leer desde una Base de Datos pero... ¿Que pasa si lo que quiero es insertarlo?

Digamos que un usuario introduce 24.600,34 y tu quieres insertar dicha cantidad en tu BD. Lo que hago yo es quitar todos los puntos y comas de la cifra con un replace (replace(cad, ".", "") y replace(cad,",","")) y luego tomo las dos ultimas cifras como decimales (mid(cad,len(cad)-2,2)) Asi tendria dos valores:

- El entero: 24600
- el decimal: 34

Luego no tengo mas que concatenar las cadenas

cad = "24600" & "." & "34"

En cuanto a los millares, te recomiendo que avises a los usuarios de que no lo use. Como en la mayoria de los casos no te van a hacer caso, siempre puedes chequear los datos como replace.


Un saludo