java两个整数相除保留两位小数
【代码】java两个整数相除保留两位小数。
·
1、使用浮点数类型和DecimalFormat进行格式化
int dividend = 10;
int divisor = 3;
// 将其中一个操作数强制转换为double类型,使得除法运算得到浮点数结果
double result = (double) dividend / divisor;
// 创建DecimalFormat对象,指定保留两位小数
DecimalFormat decimalFormat = new DecimalFormat("#0.00");
// 使用DecimalFormat格式化浮点数结果,得到字符串形式的结果
String formattedResult = decimalFormat.format(result);
// 输出格式化后的结果
System.out.println(formattedResult);
2、使用BigDecimal类进行精确的数值计算和格式化
int dividend = 10;
int divisor = 3;
// 将被除数转换为BigDecimal类型
BigDecimal dividendBigDecimal = new BigDecimal(dividend);
// 将除数转换为BigDecimal类型
BigDecimal divisorBigDecimal = new BigDecimal(divisor);
// 使用BigDecimal进行除法计算,并指定保留两位小数和舍入方式
BigDecimal resultBigDecimal = dividendBigDecimal.divide(divisorBigDecimal, 2, RoundingMode.HALF_UP);
// 输出结果的字符串形式
System.out.println(resultBigDecimal.toString());
3、BigDecimal加减乘除计算
package com.smcv.yl.tms.platform.util;
import java.math.BigDecimal;
public class DoubleUtil {
/**
* double 相加
* @param d1
* @param d2
* @return
*/
public static double sum(double d1,double d2){
BigDecimal bd1 = new BigDecimal(Double.toString(d1));
BigDecimal bd2 = new BigDecimal(Double.toString(d2));
return bd1.add(bd2).doubleValue();
}
/**
* double 相减
* @param d1
* @param d2
* @return
*/
public static double sub(double d1,double d2){
BigDecimal bd1 = new BigDecimal(Double.toString(d1));
BigDecimal bd2 = new BigDecimal(Double.toString(d2));
return bd1.subtract(bd2).doubleValue();
}
/**
* double 乘法
* @param d1
* @param d2
* @return
*/
public static double mul(double d1,double d2){
BigDecimal bd1 = new BigDecimal(Double.toString(d1));
BigDecimal bd2 = new BigDecimal(Double.toString(d2));
return bd1.multiply(bd2).doubleValue();
}
/**
* double 除法
* @param d1
* @param d2
* @param scale 四舍五入 小数点位数
* @return
*/
public static double div(double d1,double d2,int scale){
// 调用方法前,判断分母是否为0
BigDecimal bd1 = new BigDecimal(Double.toString(d1));
BigDecimal bd2 = new BigDecimal(Double.toString(d2));
return bd1.divide(bd2,scale,BigDecimal.ROUND_HALF_UP).doubleValue();
}
/**
* double 转 string 去掉后面的0
* @param i
* @return
*/
public static String getString(double i){
String s = String.valueOf(i);
if(s.indexOf(".") > 0){
//正则表达
s = s.replaceAll("0+?$", ""); // 去掉后面无用的零
s = s.replaceAll("[.]$", ""); // 如小数点后面全是零则去掉小数点
}
return s;
}
/**
* 数字转换为千位符
* @param number
* @return
*/
public static String numberToBits(String number){
String begin="";
String end="";
String[] num=number.split("\\.");
if(num.length>1){
begin=num[0];
end=num[1];
}else{
begin=number;
}
return begin.replaceAll("(?<=\\d)(?=(?:\\d{3})+$)", ",")+"."+end;
}
public static void main(String[] args) {
String i=numberToBits("10000000.01");
System.out.println(i);
}
}
更多推荐
所有评论(0)