package com.xc.core.generator;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.DecimalFormat;
/**
* 数据简单计算
* @Title:DataComputeTest
* @Company:
* @author LiuAndZn
* @version
* @date 2019年12月17日 下午5:31:27
*/
public class DataComputeTest {
public static void main(String[] args) {
String number = "60.888";
String num = "2";
String num1 = multiply(number, num);
String num2 = divide(number, num,3);
String num3 = addition(number, num);
String num4 = subtract(number, num);
String num5 = getParseDouble(num2, "######0.00");
String num6 = formatDouble(Double.valueOf(num2), 2);
System.out.println("两数相乘:"+ number +" * "+ num +" = " + num1);
System.out.println("两数相除:"+ number +" / "+ num +" = " + num2);
System.out.println("两数相加:"+ number +" + "+ num +" = " + num3);
System.out.println("两数相减:"+ number +" - "+ num +" = " + num4);
System.out.println("保留两位小数:"+ num2 +" ----> "+ num5);
System.out.println("保留两位小数:"+ num2 +" ----> "+ num6);
}
/**
* 两数相乘
* @param number
* @param num
* @return String
* @author LiuAndZn
* @date 2019年12月17日
*/
public static String multiply(String number, String num) {
BigDecimal number1 = new BigDecimal(number);
BigDecimal num1 = new BigDecimal(num);
return number1.multiply(num1).toString();
}
/**
* 两数相除并向上四舍五入保留指定位小数
* @param divisor 除数
* @param dividend 被除数
* @param pattern 保留位小数
* @return String
* @author LiuAndZn
* @date 2019年12月17日
*/
public static String divide(String divisor, String dividend, int pattern) {
BigDecimal divisor1 = new BigDecimal(divisor);
BigDecimal dividend1 = new BigDecimal(dividend);
return divisor1.divide(dividend1, pattern, BigDecimal.ROUND_HALF_UP).toString();
}
/**
* 两数相加
* @param number 数1
* @param num 数2
* @return String
* @author LiuAndZn
* @date 2019年12月17日
*/
public static String addition(String number, String num) {
BigDecimal number1 = new BigDecimal(number);
BigDecimal num1 = new BigDecimal(num);
return number1.add(num1).toString();
}
/**
* 两数相减
* @param number 数1
* @param num 数2
* @return String
* @author LiuAndZn
* @date 2019年12月17日
*/
public static String subtract(String number, String num) {
BigDecimal number1 = new BigDecimal(number);
BigDecimal num1 = new BigDecimal(num);
return number1.subtract(num1).toString();
}
/**
* 小数转整数或带某位小数
* @param num 数值
* @param pattern 保留小数位
* @return String
* @author LiuAndZn
* @date 2019年12月10日
*/
public static String getParseDouble(String num , String pattern) {
if (((int) Double.parseDouble(num) * 1000) == (int) (Double.parseDouble(num) * 1000)) {
//如果是一个整数
num = String.valueOf((int) Double.parseDouble(num));
} else {
DecimalFormat df = new DecimalFormat(pattern);
num = df.format(Double.parseDouble(num));
}
return num;
}
/**
* double取整或保留某位小数
* @param d
* @param newScale
* @return String
* @author LiuAndZn
* @date 2019年12月10日
*/
public static String formatDouble(double d,int newScale) {
BigDecimal bg = new BigDecimal(d).setScale(newScale, RoundingMode.HALF_UP);
double num = bg.doubleValue();
if (Math.round(num) - num == 0) {
return String.valueOf((long) num);
}
return String.valueOf(num);
}
}
常用几种数据类型计算方式(记录贴)
最新推荐文章于 2024-03-18 15:57:26 发布