В Java существует несколько способов отображения double
в 2 десятичных знаках.
1. Десятичный формат
package com.mkyong; import java.math.RoundingMode; import java.text.DecimalFormat; public class DecimalExample { private static DecimalFormat df2 = new DecimalFormat("#.##"); public static void main(String[] args) { double input = 3.14159265359; System.out.println("double : " + input); System.out.println("double : " + df2.format(input)); //3.14 // DecimalFormat, default is RoundingMode.HALF_EVEN df2.setRoundingMode(RoundingMode.DOWN); System.out.println("\ndouble : " + df2.format(input)); //3.14 df2.setRoundingMode(RoundingMode.UP); System.out.println("double : " + df2.format(input)); //3.15 } }
Выход
double : 3.14159265359 double : 3.14 double : 3.14 double : 3.15
2. Выход
package com.mkyong; public class StringFormatExample { public static void main(String[] args) { double input = 3.14159265359; System.out.println("double : " + input); System.out.println("double : " + String.format("%.2f", input)); System.out.format("double : %.2f", input); } }
Выход
double : 3.14159265359 double : 3.14 double : 3.14
3. Большой десятичный
package com.mkyong; import java.math.BigDecimal; import java.math.RoundingMode; public class BigDecimalExample { public static void main(String[] args) { double input = 3.14159265359; System.out.println("double : " + input); BigDecimal bd = new BigDecimal(input).setScale(2, RoundingMode.HALF_UP); double newInput = bd.doubleValue(); System.out.println("double : " + newInput); } }
Выход
double : 3.14159265359 double : 3.14
Рекомендации
- Десятичный формат JAVADOCS
- JAVADOC в режиме округления
- Как округлить значение double/float до 2 десятичных знаков в Java
Оригинал: “https://mkyong.com/java/java-display-double-in-2-decimal-points/”