Estoy usando java.util.Random para generar un gaussian aleatorio. Necesito convertir este gaussiano en un valor flotante. Sin embargo, gaussiano es un doble, así que necesito una forma de redondear y luego convertirlo en un flotador. Necesito redondear al número entero más cercano, redondeando hacia arriba. Aquí está mi pregunta: ¿Cómo?¿Cómo redondear el doble al número entero más cercano y luego convertirlo en un flotador?
Respuesta
float b = (float)Math.ceil(a);
o float b = (float)Math.round(a);
Dependiendo de si se quería decir "vuelta al número entero más próximo" (redonda) o "redondear" (ceil).
Tenga cuidado con la pérdida de precisión al convertir un doble en un flotador, pero eso no debería ser un problema aquí.
Gracias por la respuesta, exactamente lo que estaba pidiendo – JAW1025
Aquí está un ejemplo rápido:
public class One {
/**
* @param args
*/
public static void main(String[] args) {
double a = 4.56777;
System.out.println(new Float(Math.round(a)));
}
}
el resultado y la salida será: 5.0
el flotador límite superior más cercano al valor de partida de double a = 4.56777
en este caso el uso de ronda se recomienda ya que toma valores de double
y proporciona valores enteros long
R egards
'(flotante) Math.round (a)' es muchas veces más eficiente en tiempo y espacio. – EJP
De acuerdo. Debe usar 'Float a = new Float (" 3.14 ")' solo cuando necesite acceder a los métodos heredados del objeto de la superclase, como 'clone, toString, equals', etc. 'float a = (float) 3.14;' se comporta muy mal en un enfoque OOP. – VeRo
No sé lo que 'Float a = new Float (" 3.14 ")' tiene que ver con eso. Ni el OP, ni yo, ni usted han dicho nada al respecto, ni tampoco sobre OOP para ese asunto. – EJP
Por lo que vale:
el número entero más cercano a cualquier entrada dada, como se muestra en la siguiente tabla se puede calcular utilizando Math.ceil o Math.floor dependiendo de la distancia entre la entrada y el siguiente número entero
+-------+--------+
| input | output |
+-------+--------+
| 1 | 0 |
| 2 | 0 |
| 3 | 5 |
| 4 | 5 |
| 5 | 5 |
| 6 | 5 |
| 7 | 5 |
| 8 | 10 |
| 9 | 10 |
+-------+--------+
private int roundClosest(final int i, final int k) {
int deic = (i % k);
if (deic <= (k/2.0)) {
return (int) (Math.floor(i/(double) k) * k);
} else {
return (int) (Math.ceil(i/(double) k) * k);
}
}
- 1. ¿Redondear el flotador al factor más cercano?
- 2. Redondeando un flotador al entero más cercano en ruby
- 3. Cómo redondear un flotador al cuarto más cercano
- 4. Powershell - Redondee al número entero más cercano
- 5. redondear al número agradable más cercano
- 6. ¿Cómo redondear un número al 10 más cercano?
- 7. En Excel, cómo redondear al número de fibonacci más cercano
- 8. ¿Cómo podría convertir un doble al valor entero más cercano?
- 9. Javascript - cómo redondear al número entero más próximo
- 10. Cómo convertir un flotador a un Int redondeando al entero entero más cercano
- 11. ¿Cómo redondear un doble al int más pequeño más cercano en C?
- 12. Cómo redondear los números de coma flotante al entero más cercano en C?
- 13. Redondea al entero más cercano
- 14. Redondear o acercar al más cercano 20
- 15. Redondee el valor al número entero más cercano en SQL ACTUALIZACIÓN
- 16. Truncar/redondear el número entero en JavaScript?
- 17. ¿Cómo redondear un número en VBA al 5 más cercano? (o 10 o X)
- 18. Cómo redondear entero en java
- 19. Redondeando un número al múltiplo más cercano de 5
- 20. Redondeando al número entero más cercano .... estoy haciendo trampa o es esto más que adecuado
- 21. Redondear un doble a int
- 22. Redondeando al 0.05 más cercano en JavaScript
- 23. número redondo al más cercano 0.2 con PHP
- 24. decimal redondo al décimo más cercano
- 25. ¿Cómo puedo redondear un número en Javascript?
- 26. Redondear un flotante hasta el siguiente entero en javascript
- 27. objetivo-c número redondeo al más cercano 50
- 28. Javascript: redondee hacia arriba y hacia abajo al 5 más cercano, luego encuentre un denominador común
- 29. Decimal/doble a entero: redondee hacia arriba (no solo hacia el más cercano)
- 30. cómo redondear al lugar más alto de 10 en pitón
"necesito convertir esta gaussiano a un valor flotante." ... "Necesito redondear al número entero más cercano" ... ¿Quieres un flotador o un número entero? –
¿Desea redondear, o desea redondear al número entero más cercano? –
¿Desea redondear al número entero más cercano o redondear? Esas son declaraciones incompatibles. p.ej. ¿Cómo redondearías 3.4? El número entero más cercano es 3, el redondeo es 4. – user949300