当两个整数相除时,由于小数点以后的数字会被截断,使运算结果为整数,故此时若希望得到运算结果为所预期的浮点数,则此时必须将两整数其一或是全部强制转换类型为浮点数。
package com.example.test;
import java.text.DecimalFormat;
public class test {
private static int mNumber1=1;
private static int mNumber2=8;
static double mResult;
public static void main(String[] args) {
// TODO Auto-generated method stub
//第一种方法
mResult=KeepTwoDecimal(mNumber1, mNumber2);
System.out.println("第一个结果:"+mResult);
//第二种方法
DecimalFormat df = new DecimalFormat("0.00");//格式化小数,不足的补0
String num =df.format((double)mNumber1/mNumber2);//返回的是String类型的
double nums=Double.parseDouble(num);
System.out.println("第二个结果:"+nums);
}
private static double KeepTwoDecimal (int number1,int number2){
double a=Double.valueOf(number1);
double b=Double.valueOf(number2);
double c=a/b;
return c=(double)((int)(c*100.0))/100;
}
}
第一个结果:0.12
第二个结果:0.12
当然还有其他方法,比如说
c=(
float
)(Math.round(b/a)*100)/100;不知道为什么我用着不起作用。