Problemas con redondeo...

03/05/2006 - 22:17 por GustavoArriola | Informe spam
Hola a todos!

Tengo un procedimiento que realiza el redondeo por medio de la espacio
system.math, también tengo otro que llama a un procedimiento almacenado en
SQL Server 2000 que también realiza un redondeo. Sin embargo la forma de
redondeo entre ambos es diferente.

¿Cómo puedo hacer para que el redondeo en vb.net coincida con el de SQL?
¿Tendré que crear mi propia rutina de redondeo?

Redondeo SQL Redondeo VB.NET
4.4 -- 4 4.4 '4
4.5 --5 4.5 '4
4.6 --5 4.6 ' 5

Desde ya muchas gracias!
Gustavo Arriola

Preguntas similare

Leer las respuestas

#6 Angel. E. Ruiz. P
04/05/2006 - 16:04 | Informe spam
Sorry lo coloque fue por esto "(Creo que en versiones anteriores de .NET
esto no cambia)"

Porfis se puedes me atiendes por msn que tengo una dudita please con un W.S
"Jorge Serrano [MVP VB]"
escribió
en el mensaje news:
Hola Ángel,

efectivamente es de .NET 2.0.

En la explicación indicaba que estaba utilizando VB 2005.

Pero mejor así que quede la aclaración una vez más por si acaso. :-)))

Muchas gracias por el comentario.

Un abrazo.

Jorge Serrano Pérez
Microsoft MVP VB.NET
PortalVB.com
http://www.portalvb.com/
Weblog de Jorge Serrano
http://weblogs.golemproject.com/jorge/


"Angel. E. Ruiz. P" wrote:

Jorge pero
MidpointRounding Enumeration This enumeration is new in the .NET
Framework
version 2.0.

Saludos cordiales,
Ángel Ruiz
MCP C#
MVP de Visual Basic desde 2004
Caracas - Venezuela
"El conocimiento es un bien, que crece a medida que se comparte"
"Jorge Serrano [MVP VB]"

escribió
en el mensaje news:
> Hola Gustavo,
>
> el problema del redondeo es que se puede redondear por la izquierda o
> por
> la
> derecha.
>
> La función ROUND que será supongo la que usas en SQL Server, redondea
> de
> una
> manera por defecto.
>
> Lo mismo ocurre con .NET.
>
> Mi consejo es que mires la ayuda para aprender más acerca de la función
> de
> redondeo de SQL Server que empleas en un Stored Procedure y que hagas
> lo
> mismo en el código de .NET.
>
> En VB 2005 por ejemplo, emplear:
> Math.Round(4.5, MidpointRounding.ToEven) daría como resultado 4
> mientras que:
> Math.Round(4.5, MidpointRounding.AwayFromZero) daría como resultado 5
> (Creo que en versiones anteriores de .NET esto no cambia)
>
> En SQL Server creo recordar que la función ROUND funciona igual.
> Deberías ajustarlas en ambos casos, en .NET y en SQL Server.
>
> En SQL Server creo que la definición de ROUND dice que se debe emplear
> como
> ROUND(m,n). Si n<0 el redondeo se efectua por la izquierda del punto
> decimal
> que creo que sería tu caso, ya que intuyo que redondeas como ROUND(m)
> directamente, por lo que n es cero por defecto que es el redondeo por
> defecto
> que se realiza.
>
> Espero que mis comentarios te sirvan.
>
> Un saludo.
>
> Jorge Serrano Pérez
> Microsoft MVP VB.NET
> PortalVB.com
> http://www.portalvb.com/
> Weblog de Jorge Serrano
> http://weblogs.golemproject.com/jorge/
>
>
> "GustavoArriola" wrote:
>
>> Hola a todos!
>>
>> Tengo un procedimiento que realiza el redondeo por medio de la espacio
>> system.math, también tengo otro que llama a un procedimiento
>> almacenado
>> en
>> SQL Server 2000 que también realiza un redondeo. Sin embargo la forma
>> de
>> redondeo entre ambos es diferente.
>>
>> ¿Cómo puedo hacer para que el redondeo en vb.net coincida con el de
>> SQL?
>> ¿Tendré que crear mi propia rutina de redondeo?
>>
>> Redondeo SQL Redondeo VB.NET
>> 4.4 -- 4 4.4 '4
>> 4.5 --5 4.5 '4
>> 4.6 --5 4.6 ' 5
>>
>> Desde ya muchas gracias!
>> Gustavo Arriola
>>
>>
>>



Respuesta Responder a este mensaje
#7 Jorge Serrano [MVP VB]
04/05/2006 - 16:35 | Informe spam
Y tienes toda la razón Ángel.

También dije eso y no es del todo cierto. :-)

Muchas gracias por la rectificación.

P.D.: he visto que has intentado contactar conmigo, please, envíame un
e-mail y a ver si te lo leo asap.

Jorge Serrano Pérez
Microsoft MVP VB.NET
PortalVB.com
http://www.portalvb.com/
Weblog de Jorge Serrano
http://weblogs.golemproject.com/jorge/


"Angel. E. Ruiz. P" wrote:

Sorry lo coloque fue por esto "(Creo que en versiones anteriores de .NET
esto no cambia)"

Porfis se puedes me atiendes por msn que tengo una dudita please con un W.S
"Jorge Serrano [MVP VB]"
escribió
en el mensaje news:
> Hola Ángel,
>
> efectivamente es de .NET 2.0.
>
> En la explicación indicaba que estaba utilizando VB 2005.
>
> Pero mejor así que quede la aclaración una vez más por si acaso. :-)))
>
> Muchas gracias por el comentario.
>
> Un abrazo.
>
> Jorge Serrano Pérez
> Microsoft MVP VB.NET
> PortalVB.com
> http://www.portalvb.com/
> Weblog de Jorge Serrano
> http://weblogs.golemproject.com/jorge/
>
>
> "Angel. E. Ruiz. P" wrote:
>
>> Jorge pero
>> MidpointRounding Enumeration This enumeration is new in the .NET
>> Framework
>> version 2.0.
>>
>> Saludos cordiales,
>> Ángel Ruiz
>> MCP C#
>> MVP de Visual Basic desde 2004
>> Caracas - Venezuela
>> "El conocimiento es un bien, que crece a medida que se comparte"
>> "Jorge Serrano [MVP VB]"
>>
>> escribió
>> en el mensaje news:
>> > Hola Gustavo,
>> >
>> > el problema del redondeo es que se puede redondear por la izquierda o
>> > por
>> > la
>> > derecha.
>> >
>> > La función ROUND que será supongo la que usas en SQL Server, redondea
>> > de
>> > una
>> > manera por defecto.
>> >
>> > Lo mismo ocurre con .NET.
>> >
>> > Mi consejo es que mires la ayuda para aprender más acerca de la función
>> > de
>> > redondeo de SQL Server que empleas en un Stored Procedure y que hagas
>> > lo
>> > mismo en el código de .NET.
>> >
>> > En VB 2005 por ejemplo, emplear:
>> > Math.Round(4.5, MidpointRounding.ToEven) daría como resultado 4
>> > mientras que:
>> > Math.Round(4.5, MidpointRounding.AwayFromZero) daría como resultado 5
>> > (Creo que en versiones anteriores de .NET esto no cambia)
>> >
>> > En SQL Server creo recordar que la función ROUND funciona igual.
>> > Deberías ajustarlas en ambos casos, en .NET y en SQL Server.
>> >
>> > En SQL Server creo que la definición de ROUND dice que se debe emplear
>> > como
>> > ROUND(m,n). Si n<0 el redondeo se efectua por la izquierda del punto
>> > decimal
>> > que creo que sería tu caso, ya que intuyo que redondeas como ROUND(m)
>> > directamente, por lo que n es cero por defecto que es el redondeo por
>> > defecto
>> > que se realiza.
>> >
>> > Espero que mis comentarios te sirvan.
>> >
>> > Un saludo.
>> >
>> > Jorge Serrano Pérez
>> > Microsoft MVP VB.NET
>> > PortalVB.com
>> > http://www.portalvb.com/
>> > Weblog de Jorge Serrano
>> > http://weblogs.golemproject.com/jorge/
>> >
>> >
>> > "GustavoArriola" wrote:
>> >
>> >> Hola a todos!
>> >>
>> >> Tengo un procedimiento que realiza el redondeo por medio de la espacio
>> >> system.math, también tengo otro que llama a un procedimiento
>> >> almacenado
>> >> en
>> >> SQL Server 2000 que también realiza un redondeo. Sin embargo la forma
>> >> de
>> >> redondeo entre ambos es diferente.
>> >>
>> >> ¿Cómo puedo hacer para que el redondeo en vb.net coincida con el de
>> >> SQL?
>> >> ¿Tendré que crear mi propia rutina de redondeo?
>> >>
>> >> Redondeo SQL Redondeo VB.NET
>> >> 4.4 -- 4 4.4 '4
>> >> 4.5 --5 4.5 '4
>> >> 4.6 --5 4.6 ' 5
>> >>
>> >> Desde ya muchas gracias!
>> >> Gustavo Arriola
>> >>
>> >>
>> >>
>>
>>
>>



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