Как ограничить точность и округление вычислений с плавающей запятой в Java?
В Java есть несколько способов ограничить точность и округление вычислений с плавающей запятой:
- Использование методов
DecimalFormat
иsetMaximumFractionDigits
для ограничения количества знаков после запятой:
double num = 3.14159265358979323846;
DecimalFormat df = new DecimalFormat("#.##");
df.setMaximumFractionDigits(2);
System.out.println(df.format(num)); // Output: 3.14
- Использование метода
Math.round
для округления числа до определенного количества знаков после запятой:
double num = 3.14159265358979323846;
double roundedNum = Math.round(num * 100.0) / 100.0;
System.out.println(roundedNum); // Output: 3.14
- Использование класса
BigDecimal
для точных вычислений с плавающей запятой:
double num = 3.14159265358979323846;
BigDecimal bd = new BigDecimal(num);
bd = bd.setScale(2, RoundingMode.HALF_UP);
System.out.println(bd); // Output: 3.14