初级工程师的成长之路啊。。希望能帮助诸位
一
Long是长整型,怎么有小数,是double吧
java.text.DecimalFormat df=new java.text.DecimalFormat("#.##"); 我用的是这种
double d=3.14159;
System.out.println(df.format(d));
看我真实代码:
for (TbContractInfoEntity contractInfoEntity : proContractInfoList) {
//累计付款比例
java.text.DecimalFormat df = new java.text.DecimalFormat("#.##");
if(contractInfoEntity.getFdContractExcuteAddupPayment() !=0 && contractInfoEntity.getFdContractTotalManey() != 0) {
String format = df.format(contractInfoEntity.getFdContractExcuteAddupPayment()/contractInfoEntity.getFdContractTotalManey()*100);
contractInfoEntity.setFdGrandTotalPayRatio(format);
}
//累计付款比例取小数后两位
String format = df.format(contractInfoEntity.getFdContractExcuteAddupPayment());
contractInfoEntity.setFdContractExcuteAddupPayments(format);
======================================================下边的也是搜来的,不过我自己使用的自己在main方法上测试了,确实是可以的
二
java.math.BigDecimal
BigDecimal bd = new BigDecimal("3.14159265");
bd = bd.setScale(2,BigDecimal.ROUND_HALF_UP);
三
class Test1{
public static void main(String[] args){
double ret = convert(3.14159);
System.out.println(ret);
}
static double convert(double value){
long l1 = Math.round(value*100); //四舍五入
double ret = l1/100.0; //注意:使用 100.0 而不是 100
return ret;
}
}
四
double d = 13.4324;
d=((int)(d*100))/100;