unidad redondeo redondear redondea qué para número numeros niños más mil mas los ejercicios ejemplos decena cercanos cercana centenas centena cada ala algorithm

algorithm - redondear - redondeo ala centena ejemplos



Redondeo a los 100 más cercanos (7)

El primer número debe redondearse al segundo número más cercano. Hay muchas maneras de hacer esto, pero ¿cuál es el mejor y más corto algoritmo? Cualquiera para un desafío :-)

1244-> 1200
1254-> 1300
123-> 100
178-> 200
1576-> 1600
1449-> 1400
123456-> 123500
654321-> 654300
23-> 00
83-> 100


¿Es esta tarea?

En general, mod 100, luego si> 50 sumar restar.


El método redondo de Ruby puede consumir precisiones negativas:

n.round(-2)

En este caso -2 te lleva a redondear a la centena más cercana.


Esto lo hará, dado que estás usando matemáticas enteras:

n = (n + 50) / 100 * 100

Por supuesto, no especificó el comportamiento de, por ejemplo, 1350 y 1450, así que elegí redondear. Si necesita redondear o igualar, eso no funcionará.


Sé que es tarde en el juego, pero aquí hay algo que generalmente establezco cuando trato de redondear las cosas al nTh más cercano:

Number.prototype.roundTo = function(nTo) { nTo = nTo || 10; return Math.round(this * (1 / nTo) ) * nTo; } console.log("roundto ", (925.50).roundTo(100)); Number.prototype.ceilTo = function(nTo) { nTo = nTo || 10; return Math.ceil(this * (1 / nTo) ) * nTo; } console.log("ceilTo ", (925.50).ceilTo(100)); Number.prototype.floorTo = function(nTo) { nTo = nTo || 10; return Math.floor(this * (1 / nTo) ) * nTo; } console.log("floorTo ", (925.50).floorTo(100));

Me encuentro usando Number.ceilTo (..) porque estoy trabajando con Canvas y tratando de salir para determinar qué tan lejos está la escala.


Según el comentario anterior de Pawan Pillai, redondeando a la centésima más cercana en Javascript:
100 * Math.floor((foo + 50) / 100);


Para la entrada n :

(n + 50) / 100 * 100

utilizando división entera.

Tenga en cuenta que muchos idiomas / bibliotecas ya tienen funciones para hacer esto.


100 * round(n/100.0)