Redondeo

31/08/2006 - 02:49 por mickro | Informe spam
Hola amigos, tengo una duda.
Tengo un variable del tipo decimal en la cual tengo el siguiente valor:
2,585.

Mi pregunta es, como hago para obtener el valor 2,60??, si la redondeo
usando el metodo decimal.Round(2.585m, 2) me devuelve 2,58. Si la quiero
redondear con String.Format("c"), obtengo 2,59

Es para un programa de facturacion (POS) y necesito redondear a 0 o 5, ya
que no puedo cobrarle al cliente $ 2,59, sino $ 2,60. Saludos y gracias de
antemano

Preguntas similare

Leer las respuestas

#1 Hugo Nugra
31/08/2006 - 01:02 | Informe spam
No estoy seguro de lo que intentas decir con "necesito redondear a 0 o 5",
pero interpreto que te sirven únicamente valores como 2.60, 2.65 o 2.70,
ningún otro valor intermedio.

Que tal esto:

decimal valor = 2.585M
decimal respuesta

respuesta = (decimal)(decimal.Round(valor, 1) < valor ? decimal.Round(valor,
1) + 0.05 : decimal.Round(valor, 1))
Respuesta Responder a este mensaje
#2 MalKaViAN_NeT
31/08/2006 - 03:43 | Informe spam
puedes usar Math.round mandandole el nro, el tamaño de los decimales y
tambien puedes añadir el parametro midpointRounding que es una enumeración
que te da opcion a manejar lo que intentas hacer busca sobre eso

salu2
MalKaViAN_NeT
http://malkavian-net.webcindario.com/foro/

"mickro" wrote:

Hola amigos, tengo una duda.
Tengo un variable del tipo decimal en la cual tengo el siguiente valor:
2,585.

Mi pregunta es, como hago para obtener el valor 2,60??, si la redondeo
usando el metodo decimal.Round(2.585m, 2) me devuelve 2,58. Si la quiero
redondear con String.Format("c"), obtengo 2,59

Es para un programa de facturacion (POS) y necesito redondear a 0 o 5, ya
que no puedo cobrarle al cliente $ 2,59, sino $ 2,60. Saludos y gracias de
antemano



Respuesta Responder a este mensaje
#3 mickro
31/08/2006 - 07:47 | Informe spam
Hola, de hecho ya habia visto esta enumeracion, pero aun usandola no he
obtenido el resultado que quiero. Esto es lo que hize:

decimal.Round(2.585m, 2, MidpointRounding.AwayFromZero);

y obtengo 2.59, lo que quiero obtener es 2,60. Y, por ejemplo, con el numero
2,43, tendria que obtener 2,45.



"MalKaViAN_NeT" escribió en el
mensaje news:
puedes usar Math.round mandandole el nro, el tamaño de los decimales y
tambien puedes añadir el parametro midpointRounding que es una enumeración
que te da opcion a manejar lo que intentas hacer busca sobre eso

salu2
MalKaViAN_NeT
http://malkavian-net.webcindario.com/foro/

"mickro" wrote:

Hola amigos, tengo una duda.
Tengo un variable del tipo decimal en la cual tengo el siguiente valor:
2,585.

Mi pregunta es, como hago para obtener el valor 2,60??, si la redondeo
usando el metodo decimal.Round(2.585m, 2) me devuelve 2,58. Si la quiero
redondear con String.Format("c"), obtengo 2,59

Es para un programa de facturacion (POS) y necesito redondear a 0 o 5, ya
que no puedo cobrarle al cliente $ 2,59, sino $ 2,60. Saludos y gracias
de
antemano



Respuesta Responder a este mensaje
#4 Octavio Hernandez
31/08/2006 - 10:56 | Informe spam
Hola,

Debes utilizar 1 en el segundo parámetro, pues solo te interesa un lugar
decimal.

Salu2 - Octavio


"mickro" escribió en el mensaje
news:e2a%
Hola, de hecho ya habia visto esta enumeracion, pero aun usandola no he
obtenido el resultado que quiero. Esto es lo que hize:

decimal.Round(2.585m, 2, MidpointRounding.AwayFromZero);

y obtengo 2.59, lo que quiero obtener es 2,60. Y, por ejemplo, con el
numero 2,43, tendria que obtener 2,45.



"MalKaViAN_NeT" escribió en el
mensaje news:
puedes usar Math.round mandandole el nro, el tamaño de los decimales y
tambien puedes añadir el parametro midpointRounding que es una
enumeración
que te da opcion a manejar lo que intentas hacer busca sobre eso

salu2
MalKaViAN_NeT
http://malkavian-net.webcindario.com/foro/

"mickro" wrote:

Hola amigos, tengo una duda.
Tengo un variable del tipo decimal en la cual tengo el siguiente valor:
2,585.

Mi pregunta es, como hago para obtener el valor 2,60??, si la redondeo
usando el metodo decimal.Round(2.585m, 2) me devuelve 2,58. Si la quiero
redondear con String.Format("c"), obtengo 2,59

Es para un programa de facturacion (POS) y necesito redondear a 0 o 5,
ya
que no puedo cobrarle al cliente $ 2,59, sino $ 2,60. Saludos y gracias
de
antemano









Respuesta Responder a este mensaje
#5 Octavio Hernandez
31/08/2006 - 12:07 | Informe spam
Perdón, interpreté mal tu pregunta. Creo que la solución correcta es algo
como lo siguiente:

// entrada: valor - salida: res
decimal tmp1 = decimal.Round(valor, 1);
decimal tmp2 = valor - tmp1;
if (tmp2 < 0.045m)
res = tmp1;
else if (tmp2 >= 0.045m && tmp2 < 0.055m)
res = tmp1 + 0.05;
else // tmp2 >= 0.055
res = valor + 0.1;

Slds - Octavio


"mickro" escribió en el mensaje
news:e2a%
Hola, de hecho ya habia visto esta enumeracion, pero aun usandola no he
obtenido el resultado que quiero. Esto es lo que hize:

decimal.Round(2.585m, 2, MidpointRounding.AwayFromZero);

y obtengo 2.59, lo que quiero obtener es 2,60. Y, por ejemplo, con el
numero 2,43, tendria que obtener 2,45.



"MalKaViAN_NeT" escribió en el
mensaje news:
puedes usar Math.round mandandole el nro, el tamaño de los decimales y
tambien puedes añadir el parametro midpointRounding que es una
enumeración
que te da opcion a manejar lo que intentas hacer busca sobre eso

salu2
MalKaViAN_NeT
http://malkavian-net.webcindario.com/foro/

"mickro" wrote:

Hola amigos, tengo una duda.
Tengo un variable del tipo decimal en la cual tengo el siguiente valor:
2,585.

Mi pregunta es, como hago para obtener el valor 2,60??, si la redondeo
usando el metodo decimal.Round(2.585m, 2) me devuelve 2,58. Si la quiero
redondear con String.Format("c"), obtengo 2,59

Es para un programa de facturacion (POS) y necesito redondear a 0 o 5,
ya
que no puedo cobrarle al cliente $ 2,59, sino $ 2,60. Saludos y gracias
de
antemano









Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida