Multiplicacion

21/10/2005 - 20:46 por Will | Informe spam
Buenas tardes
Tengo un inconveniente en realizar una simple multiplicacion
en este caso cuanto mutiplico 538,25 * 138.114,09 En la pagina me
muestra 743399089425 en vez de retornarme 74339908,9425

He tratado de varias formas ya sea val_91A = round(cdbl(Dif_699) *
cdbl(tipCamb)) y sin round pero no se porque no me arroja los decimales
para poder redondear como corresponde

Habra alguna funcion mas optima para realizar un calculo de este tipo

Ojala me puedan ayudar

Sin Otro particular , y agradecido deantemano
Will

Preguntas similare

Leer las respuestas

#1 dani castillo
21/10/2005 - 20:57 | Informe spam
supongo que los datos te vienen de un textbox o cadena de texto

"supongo" que no estas añadiendo el punto del millar
=> en caso de que el dato pueda tener punto para separar los miles,
eliminalo:
variable=replace(variable,".","")
comprueba que en configuracion regional tengas la coma como separador de
decimales (en la configuracion del server claro)
=> en caso de no poder variar la configuracion regional, sustituye la coma
por un punto
variable=replace(variable,",",".")

ojo, las operaciones han de hacerse en ese orden

de esta forma ha de quedarte
538.25 * 138114.09

y deberia funcionar

"Will" escribió en el mensaje
news:
Buenas tardes
Tengo un inconveniente en realizar una simple multiplicacion
en este caso cuanto mutiplico 538,25 * 138.114,09 En la pagina me
muestra 743399089425 en vez de retornarme 74339908,9425

He tratado de varias formas ya sea val_91A = round(cdbl(Dif_699) *
cdbl(tipCamb)) y sin round pero no se porque no me arroja los decimales
para poder redondear como corresponde

Habra alguna funcion mas optima para realizar un calculo de este tipo

Ojala me puedan ayudar

Sin Otro particular , y agradecido deantemano
Will


Respuesta Responder a este mensaje
#2 Will
21/10/2005 - 22:45 | Informe spam
Hola Dani
efectivamente como me recomendaste me funciono, igual me extraña ya que
la configuracion del simbolo decimal es la coma (,) nunca entendi el pq el
ASP la asumia como punto (.) pero en fin con la funcion replace y llevando
todo a punto se me resolvio dicho problema
muchas gracias

Saludos
Will

"dani castillo" escribió en el mensaje
news:
supongo que los datos te vienen de un textbox o cadena de texto

"supongo" que no estas añadiendo el punto del millar
=> en caso de que el dato pueda tener punto para separar los miles,
eliminalo:
variable=replace(variable,".","")
comprueba que en configuracion regional tengas la coma como separador de
decimales (en la configuracion del server claro)
=> en caso de no poder variar la configuracion regional, sustituye la coma
por un punto
variable=replace(variable,",",".")

ojo, las operaciones han de hacerse en ese orden

de esta forma ha de quedarte
538.25 * 138114.09

y deberia funcionar

"Will" escribió en el mensaje
news:
> Buenas tardes
> Tengo un inconveniente en realizar una simple multiplicacion
> en este caso cuanto mutiplico 538,25 * 138.114,09 En la pagina me
> muestra 743399089425 en vez de retornarme 74339908,9425
>
> He tratado de varias formas ya sea val_91A = round(cdbl(Dif_699) *
> cdbl(tipCamb)) y sin round pero no se porque no me arroja los decimales
> para poder redondear como corresponde
>
> Habra alguna funcion mas optima para realizar un calculo de este tipo
>
> Ojala me puedan ayudar
>
> Sin Otro particular , y agradecido deantemano
> Will
>
>


Respuesta Responder a este mensaje
#3 dani castillo
22/10/2005 - 10:25 | Informe spam
Lo mejor es no fiarse ni de la config regional ni de los usuarios ;) , los
replace en ese orden hace que se ignore el punto decimal, otra forma de
hacer lo mismo y asegurarte mas es por javascript, en el textbox que uses
para leer, hacer que solo se acepten algunos caracteres (numeros y coma,
ignorando el punto, o numeros y un solo punto , o convirtiendo la coma en
punto al teclearla) aunq no suele hacer falta tanto, pero ante la duda y con
decimales mejor tratar la cadena asi con replaces


"Will" escribió en el mensaje
news:
Hola Dani
efectivamente como me recomendaste me funciono, igual me extraña ya que
la configuracion del simbolo decimal es la coma (,) nunca entendi el pq el
ASP la asumia como punto (.) pero en fin con la funcion replace y llevando
todo a punto se me resolvio dicho problema
muchas gracias

Saludos
Will

"dani castillo" escribió en el mensaje
news:
supongo que los datos te vienen de un textbox o cadena de texto

"supongo" que no estas añadiendo el punto del millar
=> en caso de que el dato pueda tener punto para separar los miles,
eliminalo:
variable=replace(variable,".","")
comprueba que en configuracion regional tengas la coma como separador de
decimales (en la configuracion del server claro)
=> en caso de no poder variar la configuracion regional, sustituye la
coma
por un punto
variable=replace(variable,",",".")

ojo, las operaciones han de hacerse en ese orden

de esta forma ha de quedarte
538.25 * 138114.09

y deberia funcionar

"Will" escribió en el mensaje
news:
> Buenas tardes
> Tengo un inconveniente en realizar una simple multiplicacion
> en este caso cuanto mutiplico 538,25 * 138.114,09 En la pagina me
> muestra 743399089425 en vez de retornarme 74339908,9425
>
> He tratado de varias formas ya sea val_91A = round(cdbl(Dif_699) *
> cdbl(tipCamb)) y sin round pero no se porque no me arroja los
> decimales
> para poder redondear como corresponde
>
> Habra alguna funcion mas optima para realizar un calculo de este tipo
>
> Ojala me puedan ayudar
>
> Sin Otro particular , y agradecido deantemano
> Will
>
>






Respuesta Responder a este mensaje
#4 Hernán Castelo
20/12/2005 - 05:35 | Informe spam
yo te recomendaría
que ese tipo de cuentas
las hagas desde un componente
(tu capa de negocios)
o al menos te las devuelva un stored proc
sobre todo si el resultado de esa operación representa DINERO


"Will" escribió en el mensaje
news:
Buenas tardes
Tengo un inconveniente en realizar una simple multiplicacion
en este caso cuanto mutiplico 538,25 * 138.114,09 En la pagina me
muestra 743399089425 en vez de retornarme 74339908,9425

He tratado de varias formas ya sea val_91A = round(cdbl(Dif_699) *
cdbl(tipCamb)) y sin round pero no se porque no me arroja los decimales
para poder redondear como corresponde

Habra alguna funcion mas optima para realizar un calculo de este tipo

Ojala me puedan ayudar

Sin Otro particular , y agradecido deantemano
Will


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida