当两个整数相除时,由于小数点以后的数字会被截断,使运算结果为整数,故此时若希望得到运算结果为所预期的浮点数,则此时必须将两整数其一或是全部强制转换类型为浮点数。
例如:
(float)a/b // 将整数其中一个强制转换成浮点数,再与另一个整数相除
a/(float)b
(float)a/(float)b // 将两个整数同时强制转换成浮点数后再彼此相除
float size = (float)stringNumber/1024;
DecimalFormat df = new DecimalFormat("0.00");//格式化小数,不足的补0
String filesize = df.format(size);//返回的是String类型的
//
因为double型小数部分会在从二进制变十进制的类型变换中产生误差,所以x2会变成-3.80000000000003,如果要使输出四舍五入 保留两位小数,可以用String的format函数,方法如下:
System.out.println(String.format("%.2f", x1));
System.out.println(String.format("%.2f", x2));