¿Como funciona mod?

08/04/2010 - 11:37 por Bluey | Informe spam
Hola amigos, estoy intentando averiguar si el resto de una division es 0.
Teng oesta instruccion A=nPr Mod 33.6 donde npr vale 100,80 y resulta que A
me da 33 cuando el resto es 0 (3 * 33.60.80)
creo que el problema viene por las decimales pero no se como solucionarlo,
seguro que es una tonteria. Si alguien sabe..

gracias



__________ Información de ESET NOD32 Antivirus, versión de la base de firmas de virus 5009 (20100408) __________

ESET NOD32 Antivirus ha comprobado este mensaje.

http://www.eset.com

Preguntas similare

Leer las respuestas

#11 Juan M. Afan de Ribera
10/04/2010 - 13:42 | Informe spam
Hola,

probaste la función que publiqué? Puede que no sea tan compacta como la que
comentas, pero funciona (bueno, tampoco es más compacta, porque la desgloso,
de manera que sea fácilmente comprensible lo que realiza).

No se si es que el grupo de noticias no actualiza bien los mensajes, pero si
lees este, prueba el método que te comento y verás que da los restos
correctamente, tanto con tus números como con cualesquiera otros con
diferentes números con diferentes cantidades decimales.

Saludos,
Juan M Afan de Ribera
:-)

"Bluey" wrote:

Hola de nuevo, he estado haciendo pruebas con esto del resto y he hecho esta
funcion

Private Function CalcularResto(nDividendo As Single, nDivisor As Single) As
Single
CalcularResto = nDividendo - ((Round(nDividendo / nDivisor)) * nDivisor)
End Function


con excel me funciona bien ,pero con access si hago
CalcularResto(100.8,33.6) me da un valor de resto de 7,629395E-06 supongo
que es por la dichosa precision decimal pero si tenia que dar cero ya que el
resultado de dividir 100.8 entre 33.6 son 3 si multiplico 3 por el divisor
(33.6) son 100.8 y si lo resto a 100.8 tendria que dar un valor de
CEROOOOOOOOOOOOOOOOOOO¡¡¡ llevo 2 dias con el dichoso resto, ¿como es
posible que acces no pueda calcularlo con decimales? a veces odias a access

gracias por vuestra ayuda

saludos



__________ Información de ESET NOD32 Antivirus, versión de la base de firmas de virus 5014 (20100409) __________

ESET NOD32 Antivirus ha comprobado este mensaje.

http://www.eset.com




.

Respuesta Responder a este mensaje
#12 Patxi Sanz
10/04/2010 - 20:20 | Informe spam
Si la precisión decimal es muy importante, usa datos de tipo Currency. Eso
sí, perderás precisión porque sólo admite 4 decimales.

Un saludo,


Patxi Sanz
Tudela (NA)
http://www.pasa.es.tt/
Respuesta Responder a este mensaje
#13 Bluey
11/04/2010 - 22:37 | Informe spam
Perdona Juan, no lo vi o no me llego a tiempo. He probado tu funcion y
funciona perfectamente, no la entiendo muy bien porque yo con las mates...
regular tirando a mal pero va bien. Microsoft tendria que echar mano de
gente como vosotros para mejor sus aplicaciones y que no pasen cosas como
esta ¿que es eso de que si un numero es decimal no pueda calcular el resto?
no me lo explico.

Muchas gracias de nuevo, si no fuera por voostros estaria atascado cada 2x3

saludos


"Juan M. Afan de Ribera"
escribió en el mensaje
news:
Hola,

probaste la función que publiqué? Puede que no sea tan compacta como la
que
comentas, pero funciona (bueno, tampoco es más compacta, porque la
desgloso,
de manera que sea fácilmente comprensible lo que realiza).

No se si es que el grupo de noticias no actualiza bien los mensajes, pero
si
lees este, prueba el método que te comento y verás que da los restos
correctamente, tanto con tus números como con cualesquiera otros con
diferentes números con diferentes cantidades decimales.

Saludos,
Juan M Afan de Ribera
:-)

"Bluey" wrote:

Hola de nuevo, he estado haciendo pruebas con esto del resto y he hecho
esta
funcion

Private Function CalcularResto(nDividendo As Single, nDivisor As Single)
As
Single
CalcularResto = nDividendo - ((Round(nDividendo / nDivisor)) *
nDivisor)
End Function


con excel me funciona bien ,pero con access si hago
CalcularResto(100.8,33.6) me da un valor de resto de 7,629395E-06 supongo
que es por la dichosa precision decimal pero si tenia que dar cero ya que
el
resultado de dividir 100.8 entre 33.6 son 3 si multiplico 3 por el
divisor
(33.6) son 100.8 y si lo resto a 100.8 tendria que dar un valor de
CEROOOOOOOOOOOOOOOOOOO¡¡¡ llevo 2 dias con el dichoso resto, ¿como es
posible que acces no pueda calcularlo con decimales? a veces odias a
access

gracias por vuestra ayuda

saludos



__________ Información de ESET NOD32 Antivirus, versión de la base de
firmas de virus 5014 (20100409) __________

ESET NOD32 Antivirus ha comprobado este mensaje.

http://www.eset.com




.




__________ Informacin de ESET NOD32 Antivirus, versin de la base de firmas
de virus 5018 (20100411) __________

ESET NOD32 Antivirus ha comprobado este mensaje.

http://www.eset.com








__________ Información de ESET NOD32 Antivirus, versión de la base de firmas de virus 5018 (20100411) __________

ESET NOD32 Antivirus ha comprobado este mensaje.

http://www.eset.com
Respuesta Responder a este mensaje
#14 Juan M. Afan de Ribera
12/04/2010 - 09:10 | Informe spam
Hola,

me alegro de que te funcione bien. Te aseguro que yo con las mates tampoco
soy nada del otro mundo. De hecho soy persona con pocos estudios, así que no
entiendo demasiado de fórmulas y esas cosas. En realidad he aplicado aquí
algo parecido a la cuenta de la vieja, o en otras palabras, lo que me
enseñaron en la escuela hace ya muuuuucho tiempo, es decir, la técnica de
"correr la coma hacia la derecha".

Lo de por qué funciona Mod de esa manera, no lo se. Pero igualmente esa es
una función del lenguaje VBA, no de Access. En defensa de Access diré que se
ataca demasiado a este programa y yo creo que es porque se compara a Access
con otros programas (ej. Excel) o con otros motores de base de datos (MySQL,
Oracle...) y se espera que funcione igual. Yo creo que Access es un gran
programa, y más con estas últimas versiones que han salido en los últimos
años y cubre las necesidades (de laaaargo) de la gran mayoría de gente que
necesita una base de datos rápida y fácilmente configurable.

En fin...
Juan M. Afan de Ribera
:-)

"Bluey" wrote:

Perdona Juan, no lo vi o no me llego a tiempo. He probado tu funcion y
funciona perfectamente, no la entiendo muy bien porque yo con las mates...
regular tirando a mal pero va bien. Microsoft tendria que echar mano de
gente como vosotros para mejor sus aplicaciones y que no pasen cosas como
esta ¿que es eso de que si un numero es decimal no pueda calcular el resto?
no me lo explico.

Muchas gracias de nuevo, si no fuera por voostros estaria atascado cada 2x3

saludos


"Juan M. Afan de Ribera"
escribió en el mensaje
news:
> Hola,
>
> probaste la función que publiqué? Puede que no sea tan compacta como la
> que
> comentas, pero funciona (bueno, tampoco es más compacta, porque la
> desgloso,
> de manera que sea fácilmente comprensible lo que realiza).
>
> No se si es que el grupo de noticias no actualiza bien los mensajes, pero
> si
> lees este, prueba el método que te comento y verás que da los restos
> correctamente, tanto con tus números como con cualesquiera otros con
> diferentes números con diferentes cantidades decimales.
>
> Saludos,
> Juan M Afan de Ribera
> :-)
>
> "Bluey" wrote:
>
>> Hola de nuevo, he estado haciendo pruebas con esto del resto y he hecho
>> esta
>> funcion
>>
>> Private Function CalcularResto(nDividendo As Single, nDivisor As Single)
>> As
>> Single
>> CalcularResto = nDividendo - ((Round(nDividendo / nDivisor)) *
>> nDivisor)
>> End Function
>>
>>
>> con excel me funciona bien ,pero con access si hago
>> CalcularResto(100.8,33.6) me da un valor de resto de 7,629395E-06 supongo
>> que es por la dichosa precision decimal pero si tenia que dar cero ya que
>> el
>> resultado de dividir 100.8 entre 33.6 son 3 si multiplico 3 por el
>> divisor
>> (33.6) son 100.8 y si lo resto a 100.8 tendria que dar un valor de
>> CEROOOOOOOOOOOOOOOOOOO¡¡¡ llevo 2 dias con el dichoso resto, ¿como es
>> posible que acces no pueda calcularlo con decimales? a veces odias a
>> access
>>
>> gracias por vuestra ayuda
>>
>> saludos
>>
>>
>>
>> __________ Información de ESET NOD32 Antivirus, versión de la base de
>> firmas de virus 5014 (20100409) __________
>>
>> ESET NOD32 Antivirus ha comprobado este mensaje.
>>
>> http://www.eset.com
>>
>>
>>
>>
>> .
>>
>
> __________ Informacin de ESET NOD32 Antivirus, versin de la base de firmas
> de virus 5018 (20100411) __________
>
> ESET NOD32 Antivirus ha comprobado este mensaje.
>
> http://www.eset.com
>
>
>



__________ Información de ESET NOD32 Antivirus, versión de la base de firmas de virus 5018 (20100411) __________

ESET NOD32 Antivirus ha comprobado este mensaje.

http://www.eset.com




.

Respuesta Responder a este mensaje
#15 Blue
12/04/2010 - 10:15 | Informe spam
Hola Juan, si yo soy el maximo defensor de access, llevo trabajando con el
desde la vresion 97 y estoy con la 2003 y algo de la 2007 y he ojeado la
2010 y a mi access me parece un pasada, simpre estoy pensando en pasar a vb
pero las veces que lo he intentado me he estrellado. Yo con access soy capaz
de crear una aplicacion un poco grande en poco mas de una semana. Es
rapidisomo y funciona de maravilla (esta claro que no tiene la velocidad de
vb y sql pero para una emrpesa de hasta 4 puestos o incluso alguno mas...),
pero no entiendo como microsoft tiene cosas como esta del mod, o la lentitud
al revincular tablas si la bd esta abierta por otro usuario o chorradas de
esas que si microsoft puliese un poco mas seria la bomba.

Yo tengo aplicaciones corriendo con varios usuarios y van de maravilla, Hay
clientes que cuando ven que es access les da un poco de desconfianza, pero
yo sigo con el. Quisera dedicarme mas al desarrollo y con access lo hago de
maravilla, a ver si un dia puedo vivir de lo que la programacion me da (no
se si alguno de vosotros lo ha conseguido). De momento estoy con la version
2003 por compatibilidad con clientes pero la version 2010 me parece que
tiene cosas muy buenas, sobre todo una que ya probaremos que es la de
conectar con una bd back-end en la nube.

Bueno, la cosa que aunque me queje un poc por esas cosillas yo sigo con
access y me alegro que este foro sea tan movido, estamos mucha gente en el y
eso es bueno, significa que access vive y que se utiliza muchisimo

gracias de nuevo a todos vosotros

saludos

"Juan M. Afan de Ribera"
escribió en el mensaje
news:
Hola,

me alegro de que te funcione bien. Te aseguro que yo con las mates tampoco
soy nada del otro mundo. De hecho soy persona con pocos estudios, así que
no
entiendo demasiado de fórmulas y esas cosas. En realidad he aplicado aquí
algo parecido a la cuenta de la vieja, o en otras palabras, lo que me
enseñaron en la escuela hace ya muuuuucho tiempo, es decir, la técnica de
"correr la coma hacia la derecha".

Lo de por qué funciona Mod de esa manera, no lo se. Pero igualmente esa es
una función del lenguaje VBA, no de Access. En defensa de Access diré que
se
ataca demasiado a este programa y yo creo que es porque se compara a
Access
con otros programas (ej. Excel) o con otros motores de base de datos
(MySQL,
Oracle...) y se espera que funcione igual. Yo creo que Access es un gran
programa, y más con estas últimas versiones que han salido en los últimos
años y cubre las necesidades (de laaaargo) de la gran mayoría de gente que
necesita una base de datos rápida y fácilmente configurable.

En fin...
Juan M. Afan de Ribera
:-)

"Bluey" wrote:

Perdona Juan, no lo vi o no me llego a tiempo. He probado tu funcion y
funciona perfectamente, no la entiendo muy bien porque yo con las
mates...
regular tirando a mal pero va bien. Microsoft tendria que echar mano de
gente como vosotros para mejor sus aplicaciones y que no pasen cosas como
esta ¿que es eso de que si un numero es decimal no pueda calcular el
resto?
no me lo explico.

Muchas gracias de nuevo, si no fuera por voostros estaria atascado cada
2x3

saludos


"Juan M. Afan de Ribera"
escribió en el mensaje
news:
> Hola,
>
> probaste la función que publiqué? Puede que no sea tan compacta como la
> que
> comentas, pero funciona (bueno, tampoco es más compacta, porque la
> desgloso,
> de manera que sea fácilmente comprensible lo que realiza).
>
> No se si es que el grupo de noticias no actualiza bien los mensajes,
> pero
> si
> lees este, prueba el método que te comento y verás que da los restos
> correctamente, tanto con tus números como con cualesquiera otros con
> diferentes números con diferentes cantidades decimales.
>
> Saludos,
> Juan M Afan de Ribera
> :-)
>
> "Bluey" wrote:
>
>> Hola de nuevo, he estado haciendo pruebas con esto del resto y he
>> hecho
>> esta
>> funcion
>>
>> Private Function CalcularResto(nDividendo As Single, nDivisor As
>> Single)
>> As
>> Single
>> CalcularResto = nDividendo - ((Round(nDividendo / nDivisor)) *
>> nDivisor)
>> End Function
>>
>>
>> con excel me funciona bien ,pero con access si hago
>> CalcularResto(100.8,33.6) me da un valor de resto de 7,629395E-06
>> supongo
>> que es por la dichosa precision decimal pero si tenia que dar cero ya
>> que
>> el
>> resultado de dividir 100.8 entre 33.6 son 3 si multiplico 3 por el
>> divisor
>> (33.6) son 100.8 y si lo resto a 100.8 tendria que dar un valor de
>> CEROOOOOOOOOOOOOOOOOOO¡¡¡ llevo 2 dias con el dichoso resto, ¿como es
>> posible que acces no pueda calcularlo con decimales? a veces odias a
>> access
>>
>> gracias por vuestra ayuda
>>
>> saludos
>>
>>
>>
>> __________ Información de ESET NOD32 Antivirus, versión de la base de
>> firmas de virus 5014 (20100409) __________
>>
>> ESET NOD32 Antivirus ha comprobado este mensaje.
>>
>> http://www.eset.com
>>
>>
>>
>>
>> .
>>
>
> __________ Informacin de ESET NOD32 Antivirus, versin de la base de
> firmas
> de virus 5018 (20100411) __________
>
> ESET NOD32 Antivirus ha comprobado este mensaje.
>
> http://www.eset.com
>
>
>



__________ Información de ESET NOD32 Antivirus, versión de la base de
firmas de virus 5018 (20100411) __________

ESET NOD32 Antivirus ha comprobado este mensaje.

http://www.eset.com




.

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