Как ограничить точность и округление вычислений с плавающей запятой в 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


About the author

William Pham is the Admin and primary author of Howto-Code.com. With over 10 years of experience in programming. William Pham is fluent in several programming languages, including Python, PHP, JavaScript, Java, C++.