Cómo convertir de float a bigDecimal en java?Cómo convertir de float a bigDecimal en java?
Respuesta
new BigDecimal(myfloat)
Utilice la float
constructor:
float f = 10.0f;
BigDecimal b = new BigDecimal(f);
No hay un constructor flotante, esto está automágicamente fundido en un doble, y el constructor doble no es seguro – Alex
BigDecimal value = new BigDecimal(Float.toString(123.4f));
Desde el javadocs, el constructor de cadena es generalmente la mejor forma de convertir un float
en un BigDecimal, ya que no sufre de la impredecibilidad del constructor BigDecimal(double)
.
cita de la docs:
Nota: Para los valores de otro flotador y doble NaN y ± Infinity, este constructor es compatible con los valores devueltos por Float.toString (float) y Double.toString (doble) Esta es generalmente la forma preferida de convertir un flotante o doble en un BigDecimal, ya que no adolece de la imprevisibilidad del constructor BigDecimal (doble).
Pero convertir un 'float' en un String explícitamente no le ayuda a resolver la imprevisibilidad automáticamente - usted debe tener cuidado de formatear el valor correctamente (redondeando e tc.). – Jesper
Para una precisión de 3 dígitos después de la coma decimal:
BigDecimal value = new BigDecimal(f,
new MathContext(3, RoundingMode.HALF_EVEN));
float f = 45.6f;
BigDecimal bd = BigDecimal.valueOf(f);
Presupuesto de documentaciones:
Nota: Esta es generalmente la forma preferida para convertir un doble (o flotante) en un BigDecimal, ya que el valor devuelto es igual a resultante de la construcción un BigDecimal a partir del resultado de usar Double.toString (doble).
Referencia: BigDecimal (Java Platform SE 6)
'Double.toString (float)' produce un resultado diferente que 'Float.toString (float)'. –
Esto es hasta mi conocimiento:
public static BigDecimal floatToBigDecimal(Float a){
if(a == null || a.isInfinite() || a.isNaN()){
return BigDecimal.ZERO;
}
try{
return BigDecimal.valueOf(a);
}catch(Exception e){
return BigDecimal.ZERO;
}
}
* Nota: Esta es generalmente la mejor forma de convertir un doble (o flotar) en un BigDecimal, como el valor devuelto es igual al resultante de construir un BigDecimal a partir del resultado de usar Double.toString (double).
pública estática BigDecimal valueOf (doble val)
Parámetros:
val - doble para convertir a un BigDecimal.
Devuelve:
un BigDecimal cuyo valor es igual o aproximadamente igual al valor de val.
Lanza:
NumberFormatException - si val es infinito o NaN.
desde:
1,5
he comprobado si Infinito o no un número, por lo que hay menos posibilidades de NumberFormatException
- 1. Cómo convertir BigInteger a BigDecimal?
- 2. cómo convertir Cadena de porcentaje a BigDecimal?
- 3. Cómo convertir Double.POSITIVE_INFINITY a BigDecimal?
- 4. Convertir float a char *
- 5. Convertir float a NSNumber
- 6. Cómo convertir float a int en smarty
- 7. Convertir doble a BigDecimal y establecer BigDecimal Precision
- 8. Convertir BigDecimal en Integer
- 9. Convertir float en bits
- 10. ¿Cómo puedo convertir un número entero en float en Java?
- 11. convertir float a entero en prolog
- 12. Convertir float a int en F #
- 13. ¿Por qué hay una conversión implícita de Float/Double a BigDecimal, pero no de String?
- 14. BigDecimal Problema en java
- 15. BigDecimal en Java
- 16. Comparación de BigDecimal e int en Java
- 17. Cómo convertir cadenas en float en JavaScript?
- 18. cast Long a BigDecimal
- 19. Cómo convertir flotador a int en Java
- 20. Problemas de precisión Java BigDecimal
- 21. Cómo convertir Float (clase Wrapper) en clase contenedora Integer?
- 22. Convertir de cadena de notación científica a float en C#
- 23. Cómo convertir float o currency a una cadena localizada?
- 24. Java, BigDecimal. Problemas con la división
- 25. ¿Cómo puedo convertir Float y [Word8]?
- 26. Cómo convertir std :: wstring a tipo numérico (int, long, float)?
- 27. ¿Cómo hacer una potencia fraccionaria en BigDecimal en Java?
- 28. perdiendo la conversión de precisión de BigDecimal java a doble
- 29. ¿Cómo se sueltan ceros insignificantes al convertir un BigDecimal en una cadena en Java?
- 30. Cómo restablecer BigDecimal a cero
No hay ningún constructor del flotador, esto se automagicamente casting para un doble, y el constructor doble no es seguro – Alex