JAVA8 计算保留两位小数
引言
在实际的软件开发中,经常需要对数值进行处理,并且需要保留指定的小数位数。在JAVA8中,提供了多种方式来进行数值计算并保留两位小数。本文将介绍JAVA8中常用的数值计算和保留两位小数的方法,并提供代码示例。
一、数值计算方法
在JAVA8中,可以使用BigDecimal类进行数值计算,该类提供了丰富的数值计算方法,并且可以控制小数位数。
1. 加法计算
使用BigDecimal的add方法可以进行两个数值的加法计算。
BigDecimal num1 = new BigDecimal("10.5");
BigDecimal num2 = new BigDecimal("5.2");
BigDecimal sum = num1.add(num2);
System.out.println("Sum: " + sum);
该代码会输出:Sum: 15.7
2. 减法计算
使用BigDecimal的subtract方法可以进行两个数值的减法计算。
BigDecimal num1 = new BigDecimal("10.5");
BigDecimal num2 = new BigDecimal("5.2");
BigDecimal difference = num1.subtract(num2);
System.out.println("Difference: " + difference);
该代码会输出:Difference: 5.3
3. 乘法计算
使用BigDecimal的multiply方法可以进行两个数值的乘法计算。
BigDecimal num1 = new BigDecimal("10.5");
BigDecimal num2 = new BigDecimal("5.2");
BigDecimal product = num1.multiply(num2);
System.out.println("Product: " + product);
该代码会输出:Product: 54.6
4. 除法计算
使用BigDecimal的divide方法可以进行两个数值的除法计算。
BigDecimal num1 = new BigDecimal("10.5");
BigDecimal num2 = new BigDecimal("5.2");
BigDecimal quotient = num1.divide(num2, 2, RoundingMode.HALF_UP);
System.out.println("Quotient: " + quotient);
该代码会输出:Quotient: 2.02
5. 求余计算
使用BigDecimal的remainder方法可以求两个数值的余数。
BigDecimal num1 = new BigDecimal("10.5");
BigDecimal num2 = new BigDecimal("5.2");
BigDecimal remainder = num1.remainder(num2);
System.out.println("Remainder: " + remainder);
该代码会输出:Remainder: 0.1
二、保留两位小数
在进行数值计算后,常常需要保留指定的小数位数。在JAVA8中,可以使用DecimalFormat类来实现对数值的格式化输出。
DecimalFormat decimalFormat = new DecimalFormat("#.##");
double number = 10.589;
String formattedNumber = decimalFormat.format(number);
System.out.println("Formatted Number: " + formattedNumber);
该代码会输出:Formatted Number: 10.59
三、完整代码示例
下面是一个完整的代码示例,演示了使用BigDecimal进行数值计算并保留两位小数的过程。
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.DecimalFormat;
public class DecimalDemo {
public static void main(String[] args) {
BigDecimal num1 = new BigDecimal("10.5");
BigDecimal num2 = new BigDecimal("5.2");
// 加法计算
BigDecimal sum = num1.add(num2);
System.out.println("Sum: " + sum);
// 减法计算
BigDecimal difference = num1.subtract(num2);
System.out.println("Difference: " + difference);
// 乘法计算
BigDecimal product = num1.multiply(num2);
System.out.println("Product: " + product);
// 除法计算
BigDecimal quotient = num1.divide(num2, 2, RoundingMode.HALF_UP);
System.out.println("Quotient: " + quotient);
// 求余计算
BigDecimal remainder = num1.remainder(num2);
System.out.println("Remainder: " + remainder);
// 保留两位小数
DecimalFormat decimalFormat = new DecimalFormat("#.##");
double number = 10.589;
String formattedNumber = decimalFormat.format(number);
System.out.println("Formatted Number: " + formattedNumber);
}
}
四、关系图
下图展示了BigDecimal、DecimalFormat和RoundingMode之间的关系。
erDiagram
BigDecimal ||..|| DecimalFormat : 使用
RoundingMode ||..||